2017-10-03 15 views
0

配列に格納された2つのセルとセルアドレスを追加するためのコードを記述しています。配列からセルアドレスを取得する方法と、それらのセルを追加する - - エラーを示すコードの下の部分は配列に格納されたアドレス

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

'設定しADD1 = ThisWorkbook.ActiveSheet.Sheets(1).Range( "C2")' '....言及するのを忘れてしまいました。 ' – Ashok

+0

longとしてlrowを宣言し、範囲としてadd1を宣言します。大文字小文字を選択するケースでは、テストする条件が必要です。 – QHarr

+0

@rosetta - done – Ashok

答えて

1

A1add(1) = ThisWorkbook.ActiveSheet.Sheets(1).Range("A2")

は、セルの値を置く補正を提案してください配列の範囲または範囲のアドレスではありません。その情報は配列に格納されません。

ActiveSheet.Sheets(1).は、2枚のシートを指します。 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 
+0

- エラーが表示されます – Ashok

+1

@Ashok編集を参照してください。 –

関連する問題