在一个工作表中使用for循环插入列,通过一些工作表。

问题描述 投票:-1回答:1

早上好,我有一张表格,格式如下:

我有一张表,有下一个格式。

Original Sheet

我想用vba来实现这样的格式。

Final Sheet

所以我的问题是: 我想得到一个vba代码,插入列如图所示,例如,如果我有 "3个动物",我必须在第一张图片的C列和D列之间插入一个D列和E列.我的工作簿在这张工作表之前有一个叫动物1的工作表,但我可以有多少张工作表,我想,"动物2,动物3,动物4,......",问题是我不知道有多少我将有工作前。所以我想要一个vba代码,得到这个工作表之前的工作表数量,然后插入我将有多少个工作表的列。

我的Workbook的张数会是 "标题,描述,动物1,... 动物X,CurrentSheet",所以我想要一个代码来计算 "动物1,......动物X "的张数,并插入尽可能多的张数。动物X",然后像图片中显示的那样,插入与床单数量一样多的列,这将是一个只有3张床单的例子。

我知道我必须用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
excel vba copy multiple-columns
1个回答
1
投票

这样计算以 "Animal "开头的表的数量,然后在另一张表上插入该数量的列。

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
© www.soinside.com 2019 - 2024. All rights reserved.