用于计算Excel中选项卡的观察值的宏

时间:2014-12-25 22:19:54

标签: excel excel-vba vba

我有多个excel文件,这些文件都包含超过50个标签,所有这些文件都只有几行,数据点最多可达数千行。每行代表一个位置的传递,其名称是选项卡名称。现在,下面的宏返回excel文件中所有选项卡的名称,但是我试图编写一个宏来计算每个选项的所有行/观察数,但是我被卡住了。

Sub SheetNames() 
Columns(1).Insert 
For i = 1 To Sheets.Count 
    Cells(i, 1) = Sheets(i).Name 
Next i 
End Sub 

例如,上面的宏在选项卡1 /选项卡2中返回选项卡1和2的名称。但是,如果选项卡2中的3行选项卡1和4行数据中有数据,则I& #39;我无法进入每个标签,突出显示并进行减法。有谁知道我怎么想这个?

1 个答案:

答案 0 :(得分:1)

使用多张纸时,您应始终使用ColumnsCells功能引用要使用的纸张。您可以将代码修改为以下内容以查找工作表中的行数,并在Sheet1列A中多次插入工作表名称:

Sub SheetNames()

Dim LastRow         As Long
Dim Sheet1LastRow   As Long
Dim i               As Long

Sheets("Sheet1").Columns(1).Insert
Sheet1LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Sheets.Count
    LastRow = Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("Sheet1").Range("A" & Sheet1LastRow + 1 & ":A" & LastRow + Sheet1LastRow) = Sheets(i).Name
    Sheet1LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Next i

End Sub

请注意,您的For循环在Sheet1上启动。如果您希望跳过此表,请从i = 2开始。