我在Sheet 1中有一个非常大的网格,有365列,每一列是一年中的一天,从1月1日开始。
行对应于制造地点,其中也有很多。
Sheet 2中没有任何内容,但我想要的是Sheet 2第一列中的大型列表,其中包含网格的所有单元格引用。
更具体地说,我希望VBA插入IF(ISBLANK("A1","","A1))
,这样如果单元格为空,则不返回任何内容,如果有值,则返回该值。
我还在学习VBA,我不知道如何在第一列上运行循环,然后转到第二列,运行循环....
答案 0 :(得分: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
答案 1 :(得分: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