繁体   English   中英

如何在Excel中使用VBA确定最后一列(具有值的最后一列)?

[英]How to determine the last column(last column with value) using VBA in excel?

我有一个问题想知道是否有人可以帮助我。

我正在做一个项目,要求获得测试结果的摘要。 我的流程如下

首先,我需要打开我收集的测试结果,然后创建一个数据透视表,在对需要查看的内容进行相应设置之后,将表复制到另一个电子表格中。 在该电子表格的上方,它将某些名称更改为所需的名称,最后,将其复制到摘要表中。 然后,我还需要以%列出摘要。

我在这里面临一个问题,对于我收集的测试结果,当我将其放入数据透视表中时,我无法确定将出现的列数。 例如

在一个例子中,我们可以有 在此处输入图片说明

在另一种情况下,我们可以

在此处输入图片说明

如果您注意到第二张图像使用了更多列。 因此,我想知道你们是否可以与我分享任何方法来确定最后一个包含要复制的详细信息的列。

而且我能否获取最后一列的编号,以便也可以获取摘要,因为我需要将其以%的形式输入。

目前,我正在使用“ Range(A1:Z1000000)”,因为我无法真正手动找到%,所以对我来说几乎是不可能的。

顺便说一句,我需要在VBA代码中。

感谢提供的所有意见和选择! 先感谢您!

这应该可以解决问题:

Sub test()

  Dim maxColumn As Long

  'Create the table here
  maxColumn = getMaxUsedColumnNumber("PivotTableSheet")
  'do what you need with the number

End Sub

Function getMaxUsedColumnNumber(sheetName As String) As Long
  With Sheets(sheetName)
    getMaxUsedColumnNumber = .Cells.Find(What:="*", after:=.Range("A1"), LookIn:=xlFormulas, _
            SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  End With
End Function

您可以按如下方式使用.SpecialCells():

ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column

或者,请查看数据透视表对象的ColumnRange属性。 它具有Count属性,该属性将返回数据透视表中的列数,这也可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM