下記内容で
「アプリケーション定義またはオブジェクト定義エラーです」
となります。
参考書通りに入力しているはずなのですが、何度入力しなおしてもエラーが
でてしまいます。
どなたか、どの部分でエラーが出ているのか教えていただけないでしょうか。
また、どのような確認方法があるかも合わせてご教授いただけると幸いです。
お手数おかけしますがよろしくお願いいたします。
VBA
1Sub データ転機() 2 Dim mypath As String 3 Dim myfile As String 4 Dim tatekaebook As Workbook 5 Dim tbshukei As ListObject 6 Dim mydepartment As String 7 Dim myname As String 8 Dim tbtatekae As ListObject 9 Dim mylistrow As ListRow 10 Dim i As Long 11 12 13 Set tbshukei = ThisWorkbook.Sheets("データ").ListObjects("集計表") '転機先のテーブル集計 14 mypath = ThisWorkbook.Path & "\経費精算ファイル\" 15 myfile = Dir(mypath) 16 17 18 'Do While myfile <> "" 19 Set tatekaebook = Workbooks.Open(Filename:=mypath & myfile) 'コピー元ファイルを全て開く 20 myname = tatekaebook.Sheets("経費精算").Range("B5").Value '氏名を代入 21 mydepartment = tatekaebook.Sheets("経費精算").Range("B4").Value '部署名を代入 22 Set tbtatekae = tatekaebook.Sheets("経費精算").ListObjects("個人立替") 23 For i = 1 To tbtatekae.ListRows.Count 'コピー元から一行の値をコピー先へ転機する 24 Set mylistrow = tbshukei.ListRows.Add '一行追加 25 With mylistrow 26 .Range(1).Value = mydepartment 27 .Range(2).Value = myname 28 .Range(3).Value = tbtatekae.ListRows(i).Range(1).Value 29 .Range(4).Value = tbtatekae.ListRows(i).Range(2).Value 30 .Range(5).Value = tbtatekae.ListRows(i).Range(3).Value 31 End With 32 Next 33 34 tatekaebook.Close 35 myfile = Dir() 36 'Loop 37 38End Sub 39
F8キーを押すことで1行ずつ実行できますので、どの行でエラーになってしまうのかを探ってみてください。
あとは、この処理で出てくる具体名(「データ」シート、「集計表」テーブル、「経費精算」シート、「個人立替」テーブルなど)がちゃんと存在するかどうかを確かめるとか。
jinoji様
ご返答ありがとうございます。
VBAのファイルが所定のフォルダで作成していないためエラーが出ていました。
ありがとうございます。
回答1件
あなたの回答
tips
プレビュー