如何根据循环计数器设置范围?

问题描述 投票:0回答:1

我是新来的,没有太多经验。 我非常感谢您提供的任何建议。

我有一个二维数组,代表计划在特定日期工作的员工。数据如下所示,其中“Staff”是缩写,例如 KLK 或 SAS:

12/30/2024  12/31/2024  1/1/2025  1/2/2025  etc...
Staff                               Staff
Staff          Staff              
               Staff                Staff
Staff
Staff

我想清理数组,例如包含员工姓名的日期,删除所有空白单元格并将员工姓名移动到列的顶部。一旦我确定了包含数据的列,我就无法弄清楚如何设置“干净”的范围。 对于前。如果我到达第四列并且它有人员条目,我想设置一个范围 D2:D25 来清理。

    For J = 1 to End_Of_Quarter  
     For i = 1 to Category_Limit 'On each date check to see if column is empty  
          If (Cells(i,j).Value <> "" Then  
            Counter = Counter + 1  
          End If  
     Next i  
     If Counter < Category_Limit 'Column is not empty.  If column is empty want to move on to next column  
       'Want to set up Range "Staff" and clean it up.  
       Range(Staff).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp  
     End If  
    Next J  

提前感谢您抽出时间回答。

我确实尝试过使用命令 Range(Staff).SpecialCells(xlCellTypeBlanks).删除shift:=xlUp 整个数组,但 Excel 将空白列解释为要删除的数据。 我需要代码来跳过空白列。

vba nested-loops named-ranges
1个回答
0
投票

也许是这样的:

Sub CleanUpColumns()
    Dim rngData As Range, col As Range
    Set rngData = ActiveSheet.Range("A1:D6") 'your data table
    For Each col In rngData.Columns          'check each column
        col.SpecialCells(xlCellTypeBlanks).Delete shift:=xlShiftUp
    Next col
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.