在“工作表1”中循环显示一个网格,然后使用表2中的一列中的公式返回单元格引用

我在第一张纸上有一个非常大的网格,有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