我在表 1 中有一个非常大的网格,有 365 列,每一列是一年中的一天,从 1 月 1 日开始。
这些行对应于制造地点,其中也有很多。
表 2 中没有任何内容,但我想要的是表 2 第一列中的一个大列表,其中包含网格的所有单元格引用。
更具体地说,我希望 VBA 插入IF(ISBLANK("A1","","A1))
,以便如果单元格为空,则不返回任何内容,如果有值,则返回该值。
我仍在学习 VBA,但我不确定如何在第一列上运行循环,然后移动到第二列,运行循环....
如果你真的想使用 vba,你可以这样做将公式复制到整个范围:
Sub doIt()
Dim lastRow As Long
lastRow = Sheets("Sheet1").UsedRange.Rows.Count
With Sheets("Sheet2")
.Range("A1:NA" & lastRow).FormulaR1C1 = "=IF(ISBLANK(Sheet1!RC),"""",Sheet1!RC)"
End With
End Sub
尝试这个 :
Sub copyFilledCells()
Dim r As Range, c As Range
Dim position As Integer
position = 1
Set r = ActiveWorkbook.Sheets("Sheet_1").Range("A:AZ")
For Each c In r
If (c.Value <> "") Then
ActiveWorkbook.Sheets("Sheet_2").Range("A" & position).Value = c.Value
' Try this if you want to insert the cell address as Formula
'ActiveWorkbook.Sheets("Sheet_2").Range("A" & position).Formula = "=" & c.Parent.Name & "!" & c.Address(External:=False)
position = position + 1
End If
Next c
End Sub