###前提・実現したいこと
Excel VBAで他のシートのセルの内容を自動転記させるマクロです。
アプリケーション定義およびオブジェクト定義がどこでされるべきなのかも
分からない状態です。
関数自体は手打ちであれば問題なく動作します。
###発生している問題・エラーメッセージ
実行時エラー'1004':
アプリケーション定義またはオブジェクト定義のエラーです。
###該当のソースコード
Excel VBA
---以下、作成したコード---
Sub For_Next()
'変数の宣言
Dim i As Long '行数カウント
Dim s, sNum, sCell, sValue, temp As String
'loop For i = 7 To 49 sNum = CStr(i) '転記先のセル sCell = "D" + sNum + "" '参照元のセル s = "3週!$BH" + sNum + "" '代入する関数 sValue = "=IF(NOT((INDIRECT(""" + s + """))=""),INDIRECT(""" + s + """),"""")" '実際にセルに表示される関数見本 '=IF(NOT((INDIRECT("3週!$BH7"))=""),INDIRECT("3週!$BH7"),"") '転記先のセルを指定 Worksheets("4週").Activate Range(sCell).Select '転記処理をさせたい(ステップインがここで止まる) ActiveCell.Range(sCell) = sValue Next i 'loop end
End Sub
---作成したコード、終わり---
以上、宜しくお願い致します。
※2017/7/31追記
今回作成したかったVBAが完成致しました。
ご回答頂いた皆様ありがとうございました。
VBA
1Option Explicit 2 3Sub For_Next2() 4 '変数の宣言 5 Dim i As Long '行数カウント 6 Dim s As String 7 Dim sValue As String 8 Dim rCell As Range 9 Dim week As Integer 10 week = 1 11 12 'loop 13 For week = 1 To 4 14 '転記先のワークシートを指定 15 Dim shtOut As Worksheet 16 Set shtOut = Worksheets((week + 1) & "週") 17 18 For i = 5 To 49 19 '転記先のセル指定 20 Set rCell = shtOut.Cells(i, "D") 21 22 '参照元のセル 23 s = "" & week & "週!$BH" & CStr(i) & "" 24 25 '代入する関数 26 sValue = "=IF(" & s & "="""",""""," & s & ")" 27 '実際にセルに表示される関数見本 ※今回の内容であればINDIRECTを使う必要はないので、この式で十分だと思います。 28 '=IF(3週!$BH7="","",3週!$BH7) 29 30 '転記先のセルに関数式を反映 31 rCell.Formula = sValue 32 33 Next i 34 35 Next week 36 'loop end 37 38End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/26 07:53
2017/07/28 00:56
2017/07/28 06:23 編集
2017/07/28 06:37
2017/07/31 00:47