我有多个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;我无法进入每个标签,突出显示并进行减法。有谁知道我怎么想这个?
答案 0 :(得分:1)
使用多张纸时,您应始终使用Columns
和Cells
功能引用要使用的纸张。您可以将代码修改为以下内容以查找工作表中的行数,并在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
开始。