dynamic计算Excel表中的列数

我有一个名为InputData的Excel工作表。 我目前有9个不同的专栏。 我想有一个循环来计算Excel表中的列数。 此外,对于计数器的每个值,我想要select单个列和最后一列(对于每个迭代将被select默认值)。 一旦我select了必要的列,这个想法就是做一个数据透视表并绘制一张条形图。 然后再次通过计数器值和最后一列dynamic地转到下一列(对于每次迭代将被select缺省值)等等。 我无法弄清楚如何去做。 任何帮助在这个问题是高度赞赏。 提前致谢!!

For i = 1 To lastColno ' Pivot Table Code Range("B1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste Sheets("BuildData").Select Range("J1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("B1").Select ActiveSheet.Paste Range("A1").Select Application.CutCopyMode = False Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R2641C2", Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:="Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion _ :=xlPivotTableVersion14 Sheets("Sheet2").Select Cells(3, 1).Select With ActiveSheet.PivotTables("PivotTable1").PivotFields("_KOLA_5SX") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable1").PivotFields("Claim?") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _ "PivotTable1").PivotFields("Claim?"), "Count of Claim?", xlCount Next i 

我将假设你已经尝试了几件事情来了解excel-vba的基础知识(对于将来的问题,也许这个也是一样,展示你到目前为止所做的工作)。

我会创build一个公式单元格来计算那里有多less列。 把它放在另一个表中,公式=COUNTA('InputData'!1:1) 。 COUNTA计算范围内不为空的单元格的数量。 假设没有空白栏,这会给你最后一列的位置。 然后你可以在你的VBA循环中使用它。

如果您的公式字段在单元格“A1”中,则循环可能如下所示:

 Dim lastColumn As Integer lastColumn = Range("A2").Value For i = 1 To lastColumn # rest of your code here Next i 

试试这个vba教程 ,了解如何获取列的技巧,以及如何制作数据透视表。 祝你好运。 希望这可以帮助你开始。

不幸的是,我不能为您提供您的答案,但下面的代码可以指导您开始。 下面的代码会find你的最后一列,并重复你的代码,直到“我”击中你的列号。 在你之间你可以添加你想要重复的代码。

 Sub rowvscol() Dim lastColno As Long Dim lastCol As Range lastColno = Cells(1, Columns.Count).End(xlToLeft).Column Set lastCol = Range(lastColno & ":" & lastColno).EntireColumn For i = 1 To lastColno ' Pivot Table Code Goes here Next i End Sub 

祝你好运。