2017-03-29 2 views
1

VBAを使用して、アドレス関数を使用していくつかのセルに数式を動的に追加しようとしています。次のスクリプトを実行すると、開くファイルエクスプローラウィンドウが表示されます。なぜそれが起こるのか分かりません。私は間違って何をしていますか?ここでExcel VBAでアドレス機能を使用するには?

は、私が試したソリューションの1つです:

Sub AddFormulas() 

Set countBase = Sheet7.Range("CU2") 
colCount = Sheet7.Range(countBase, countBase.End(xlToRight)).Columns.Count 

Dim startCount As Integer 
startCount = 98 

    For i = 1 To colCount 

     If IsNumeric(Sheet7.Cells(2, startCount + i)) Then 
      Set bSum = Sheet7.Cells(3, colCount + startCount) 
      Set bSpr = Sheet6.Cells(3, startCount + i) 

      Sheet7.Cells(3, i).Formula = "=Sheet6!" & bSpr.Address() & "*" & "Sheet7!" & bSpr.Address() 

     Else 
      'Do some stuff 
     End If 
    Next i 
End Sub 

また、私はこれを試してみました:

Sub AddFormulas() 

Set countBase = Sheet7.Range("CU2") 
colCount = Sheet7.Range(countBase, countBase.End(xlToRight)).Columns.Count 

Dim startCount As Integer 
startCount = 98 

    For i = 1 To colCount 

     If IsNumeric(Sheet7.Cells(2, startCount + i)) Then 

      Sheet7.Cells(3, i).Formula = "=Sheet6!" & Cells(3, startCount + i).Address() & "*" & "Sheet7!" & Cells(3, colCount + startCount).Address() 

     Else 
      'Do some stuff 
     End If 
    Next i 
End Sub 

答えて

2

あなたのワークシートの名前を変更しましたか?ワークシート式でコード名を使用することはできませんが、コードネームから名前を取得できます。

Sheet7.Cells(3, i).Formula = _ 
    "='" & Sheet6.Name & "'!" & bSpr.Address() & "*'" & Sheet7.Name & "'!" & bSpr.Address() 

ワークシート名にスペースが含まれている場合は、一重引用符をラップして追加しました。彼らがしなければ損害はありません。

+0

感謝を次のように私は行くと思います。私はそれが簡単な修正だと分かっていました。私は名前の方法を逃したとは信じられない! – BWMustang13

+0

@ BWMustang13技術的には、 'Name'はメソッドではなく*プロパティ*です;-) –

2

@Jeeped

With Sheet7 
    With .Range("CU2") 
     colCount = .Range(.Cells, .End(xlToRight)).Columns.Count 
    End With 

    startCount = 98 

    For i = 1 To colCount 

     If IsNumeric(.Cells(2, startCount + i)) Then 
      Set bSum = .Cells(3, colCount + startCount) 
      Set bSpr = Sheet6.Cells(3, startCount + i) 

      .Cells(3, i).Formula = "=" & Sheet6.Name & "!" & bSpr.Address() & "*" & .Name & "!" & bSpr.Address() 

     Else 
      'Do some stuff 
     End If 
    Next i 
End With 
関連する問題