所以我对命名范围以及引用和保留它们的方式有疑问。
我能够从命名范围中提取特定行,然后循环遍历所有列。但是当我尝试获取列号时,我不会从命名范围内获取它,而是从整个工作表中获取它。
For Each rng1 In Tray_System.Rows
If rng1.Cells(1, 1).Value = "Truck Dumper" Then
Debug.Print rng1.Address
Set Tray_row = rng1
End If
Next
For Each rng2 In tray_row.Columns
If rng2.Value = "X" Then
Debug.Print rng2.Column
End If
Next
我希望我能清楚自己的问题,我想简短说明。
基本上,我要做的是:
问题是我从rgn2.column得到的列号与指定范围无关。
答案 0 :(得分:0)
我不会直接使用单元格,而是使用数据数组。这样更快,你只有那些数据,而不是整张表。
示例:
aTray_System = Range("Tray_System").Value
For lRow = LBound(aTray_System, 1) To UBound(aTray_System, 1)
For lColumn = LBound(aTray_System, 2) To UBound(aTray_System, 2)
'manipulate
'aTray_System(lRow, lColumn) = aTray_System(lRow, lColumn) & "changed"
'use
Debug.Print aTray_System(lRow, lColumn)
Next
Next
'write back, if changed
Range("Tray_System").Value = aTray_System
问候
阿克塞尔