0

現在のシートをコピーし、現在の日付で名前を変更する vba マクロがあります。セル B22 に数式を入れたいのですが、必要な数式は次のとおりです。

  Current Sheet       Previous Sheet
='08 May 2013'!B18 - '01-04-2013'!B18

私はこのコードを機能させようとしてきましたが、数式ではなく文字列として入れています ie = ('[08 May 2013 !R2C18] - [ 12 May 2013 !R2C18])

Dim sheet_name As String
Dim activeSheet_name As String
Dim shtName As Integer
Dim activeShtName As Integer
shtName = Sheets.Count - 1
activeShtName = Sheets.Count
sheet_name = Sheets(shtName).Name
activeSheet_name = Sheets(activeShtName).Name
Sheets(activeSheet_name).Select
Range("B22").Select
ActiveCell.Formula = " = ('[" & sheet_name & " !R2C18] - [  " & activeSheet_name & " !R2C18])"

どんな助けでもいただければ幸いです

4

1 に答える 1

2

あなたの式は間違っています。最初に Excel で試してから、式のテキストをコピーして、上記のコードの最後の行が生成しているテキストと比較してください。VBA コードを次のように変更します。

ActiveCell.FormulaR1C1 = "='" & sheet_name & "'!R18C2-'" & activeSheet_name & "'!R18C2"

FormulaR1C1 の使用に注意してください。基本的に、シート名を一重引用符で囲む必要があります。

于 2013-05-13T14:27:35.123 に答える