1

我在表 1 中有一个非常大的网格,有 365 列,每一列是一年中的一天,从 1 月 1 日开始。

这些行对应于制造地点,其中也有很多。

表 2 中没有任何内容,但我想要的是表 2 第一列中的一个大列表,其中包含网格的所有单元格引用。

更具体地说,我希望 VBA 插入IF(ISBLANK("A1","","A1)),以便如果单元格为空,则不返回任何内容,如果有值,则返回该值。

我仍在学习 VBA,但我不确定如何在第一列上运行循环,然后移动到第二列,运行循环....

4

2 回答 2

1

如果你真的想使用 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
于 2012-05-02T14:36:06.837 回答
0

尝试这个 :

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
于 2012-05-02T14:40:16.430 回答