我编写用于添加存储在数组中的两个单元格和单元格地址的代码。下面的部分代码显示错误 - 如何从数组中检索单元格地址并添加这些单元格 - 请建议更正
Sub test()
Dim A1add(1 To 100) As String
lrw = ThisWorkbook.ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
A1add(1) = ThisWorkbook.ActiveSheet.Sheets(1).Range("A2")
A1add(2) = ThisWorkbook.ActiveSheet.Sheets(1).Range("b2")
Set add1 = ThisWorkbook.ActiveSheet.Sheets(1).Range("C2")
Select Case 2
Case 2
With add1.Resize(lrw)
.NumberFormat = "0"
.Formula = "= ( " & A1add(1).Address(False, False) & "+" & A1add(2).Address(False, False) & " )"
End With
End Select
End Sub
答案 0 :(得分:1)
A1add(1) = ThisWorkbook.ActiveSheet.Sheets(1).Range("A2")
将数组的值放在数组中,而不是范围或地址范围。该信息不存储在数组中。
而ActiveSheet.Sheets(1).
指的是两张纸。删除一个。
在这种情况下,您需要:
A1add(1) = ThisWorkbook.ActiveSheet.Range("A2").Address(0,0)
然后公式就会单独使用它。
"= ( " & A1add(1) & "+"
所以:
Sub test()
Dim A1add(1 To 100) As String
Dim lrw As Long
Dim Add1 As Range
lrw = ThisWorkbook.ActiveSheet.Range("A:A").SpecialCells(xlCellTypeLastCell).Row
A1add(1) = ThisWorkbook.ActiveSheet.Range("A2").Address(0, 0)
A1add(2) = ThisWorkbook.ActiveSheet.Range("B2").Address(0, 0)
Set add1 = ThisWorkbook.ActiveSheet.Range("C2")
Select Case 2
Case 2
With add1.Resize(lrw - 1)
.NumberFormat = "0"
.Formula = "= ( " & A1add(1) & "+" & A1add(2) & " )"
End With
End Select
End Sub