【发布时间】:2015-11-04 06:15:05
【问题描述】:
我有一个十张工作簿。在工作表 1 中,我想列出工作表名称(工作表 3 到 10)、工作表中的列标题值(仅限第 8 列及以后)以及该列中包含数据的单元格的数量。
我的代码适用于这三个要求中的两个。在我的工作表 1(名为:SheetName Columns)上,我在 A 列中获得工作表名称,在 B 列中获得列标题,但是没有任何运气获得该工作表/列的数据行数。
在我的工作表 1 上,A 列在该工作表上的第 7 列之后的每列数都会重复,这很好。
Sub ListColumnHeadings()
Dim cNbrs As Long, i As Integer, tr As Long, tc As Long, wst As Worksheet
Dim charList(300, 300) As String
Dim ws As Worksheet, OutputRow As Long
Dim myRange As Range
Dim NumRows As Integer
Dim colNbr As Range
Set shSkip1 = ThisWorkbook.Sheets("SheetName Record Cnt")
Set shList = ThisWorkbook.Sheets("SheetName Columns")
OutputRow = 1
On Error Resume Next
For Each ws In Worksheets
If ws.Name <> shList.Name And ws.Name <> shSkip1.Name Then
cNbrs = ws.Range("A1").CurrentRegion.Columns.Count
For i = 8 To cNbrs
shList.Cells(OutputRow, "A").Value = ws.Name
shList.Cells(OutputRow, "B").Value = ws.Cells(1, i)
Set myRange = ws.Columns(i).Select
NumRows = ws.Application.WorksheetFunction.CountA(myRange)
If NumRows > 0 Then
shList.Cells(OutputRow, "C").Value = NumRows
End If
OutputRow = OutputRow + 1
Next i
End If
Next ws
End Sub
【问题讨论】: