使用 for 循环通过一些 sheet 将列插入一个 sheet
Insert columns in one sheet using a for loop through some sheets
早上好。
我有一个 sheet 格式如下:
我希望它像这样使用 vba:
所以我的问题是以下一个。我想获得一个 vba 代码,插入如图所示的列,例如,如果我有“3 只动物”,我必须在第一个图像的 C 列和 D 列之间插入 D 列和 E 列.
我的工作簿在这个名为 Animal 1 之前有一个 sheet,但我可以有任意多的 sheet,"Animal 2, Animal 3, Animal 4, ...",问题是我不知道我要多少工作前有。所以我想要一个 vba 代码,它获取此 sheet 之前的 sheet 的数量,并插入与我将拥有的 sheet 一样多的列。
我的工作簿的 sheets 将是:"Title, Description, Animal 1, ... Animal X, CurrentSheet",所以我想要一个代码来计算 sheets "Animal 1, ... Animal X" 的数量并插入尽可能多的列因为有 sheets,就像图像中显示的那样,它是一个只有 3 sheets 的例子。
我知道我必须用 for 循环来做,但我找不到解决它的方法,抱歉我是 vba 的新手。
非常感谢您的回答,有什么不明白的可以问我。
PS:我正在使用这样的代码:
Dim NumSheet As Long
Dim I As Long
NumSheet = ThisWorkbook.Worksheets.Count - 4 '4 sheets that I don't want to use for the columns insertion
For I = 1 To NumSheet
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Next I
这会计算以 "Animal" 开头的 sheet 的数量,然后将该数量的列插入另一个 sheet。
Sub x()
Dim ws As Worksheet, nCount As Long, i As Long
For Each ws In Worksheets
If ws.Name Like "Animal*" Then nCount = nCount + 1
Next ws
With Sheets("Sheet4")
.Columns("D:D").Resize(, nCount).Insert Shift:=xlToRight
For i = 1 To nCount
.Cells(1, i + 3).Value = "Price Animal " & i
Next i
End With
End Sub
早上好。
我有一个 sheet 格式如下:
我希望它像这样使用 vba:
所以我的问题是以下一个。我想获得一个 vba 代码,插入如图所示的列,例如,如果我有“3 只动物”,我必须在第一个图像的 C 列和 D 列之间插入 D 列和 E 列. 我的工作簿在这个名为 Animal 1 之前有一个 sheet,但我可以有任意多的 sheet,"Animal 2, Animal 3, Animal 4, ...",问题是我不知道我要多少工作前有。所以我想要一个 vba 代码,它获取此 sheet 之前的 sheet 的数量,并插入与我将拥有的 sheet 一样多的列。
我的工作簿的 sheets 将是:"Title, Description, Animal 1, ... Animal X, CurrentSheet",所以我想要一个代码来计算 sheets "Animal 1, ... Animal X" 的数量并插入尽可能多的列因为有 sheets,就像图像中显示的那样,它是一个只有 3 sheets 的例子。
我知道我必须用 for 循环来做,但我找不到解决它的方法,抱歉我是 vba 的新手。
非常感谢您的回答,有什么不明白的可以问我。
PS:我正在使用这样的代码:
Dim NumSheet As Long
Dim I As Long
NumSheet = ThisWorkbook.Worksheets.Count - 4 '4 sheets that I don't want to use for the columns insertion
For I = 1 To NumSheet
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Next I
这会计算以 "Animal" 开头的 sheet 的数量,然后将该数量的列插入另一个 sheet。
Sub x()
Dim ws As Worksheet, nCount As Long, i As Long
For Each ws In Worksheets
If ws.Name Like "Animal*" Then nCount = nCount + 1
Next ws
With Sheets("Sheet4")
.Columns("D:D").Resize(, nCount).Insert Shift:=xlToRight
For i = 1 To nCount
.Cells(1, i + 3).Value = "Price Animal " & i
Next i
End With
End Sub