【问题标题】:Loop Through 1st cell of each column in used range Excel VBA循环遍历使用范围 Excel VBA 中每列的第一个单元格
【发布时间】:2016-01-11 17:47:02
【问题描述】:

我在工作表中有一些示例数据,我想获取使用范围内每列的标题,这是示例

我不知道使用的列的确切数量,我需要获取所有标题(CustomersManagersManagers-2.. ..) 从此工作表中显示给用户。

我可以遍历使用范围内的每个单元格,例如

For Each cell In ActiveWorkbook.Worksheets(SheetName).UsedRange

Next

但是如何循环遍历每一列,并且只从它们的第一个单元格中读取值?因为这些列表的数量可以是一个或多个。

【问题讨论】:

  • 与使用范围的第1行相同。
  • @Nathan_Sav: yes 没错,第一行已用范围
  • 就是答案,使用range.rows(1)
  • 对于For Each 循环,您应该使用UsedRange.Rows(1).Cells
  • @Fratyx:您的回答值得回答,以便 Adil 可以将其作为答案进行检查。

标签: vba excel


【解决方案1】:

用这个迭代第一行使用范围的代码替换你的代码:

For Each cell In ActiveWorkbook.Worksheets(SheetName).UsedRange.Rows(1).Cells
   ...
Next

【讨论】:

    【解决方案2】:
    'Get a 2D array of header values
    
    Dim aHeaders() As Variant
    
    aHeaders = Sheet1.UsedRange.Rows(1).Value
    

    【讨论】:

      【解决方案3】:

      这完全取决于您的数据质量。多次遇到这种情况。

      如果你的标题是一致的,那么你只需要调整到第一行。比如:

      Dim r as range, r1 as range
      
      Set r = Range("A1").CurrentRegion.Resize(1)
      

      然后为每个 r 范围做一个。

       For Each r1 in r
      
       Next
      

      你也可以使用整数变量....

       Dim i as integer
       For I = 1 to r.Count
      
       Next  
      

      【讨论】:

        猜你喜欢
        • 2012-09-26
        • 2018-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-25
        • 1970-01-01
        • 2010-11-30
        相关资源
        最近更新 更多