前提・実現したいこと
現在、他のブック(以降ブックAとします)で入力した内容を管理台帳に転記するプロシージャを作成しております。 コードはブックA側に記載しております。 構造としては 1.ブックAのシート1のセル2つに、管理台帳の「ファイルパス(変数fP)」と「名前(変数fN)」を入力する欄があり、 fP & "\" & fN のブックを開く 例:セルA1に「D:\User\Desktop」、セルA2に「新しいブック.xlsx」と記載がある場合、 D:\User\Desktop\新しいブック.xlsxを開く 2.管理台帳の中でB行に入力のある最終段(変数Ln)と、ブックAから転記するデータ数=行数(変数Lp)を取得 3.転記するコードを列Lnから下にLp回数分繰り返す というものです。 Lnは管理台帳側=別ブックを指定して変数を設定しようとしていますが、 エラー438「オブジェクトはこのプロパティまたはメソッドをサポートしていません」が発生し、設定できません。 解決法をご教示いただければ幸いです。
発生している問題・エラーメッセージ
エラー438「オブジェクトはこのプロパティまたはメソッドをサポートしていません」が発生し、設定できません。
該当のソースコード
vba
1関係ないと思われる部分は省略・簡略化しています。 2 3Sub 転記() 4Dim fP , fN as String 5Dim Ln , Lp as Long 6 7 fP = Range("A1").Value '1 8 fN = Range("A2").Value '1 9 Lp = Worksheets("あああ").Cells(Rows.Count, 5).End(xlUp).Row '2 実際はデータの始まる場所が1になるようにいくつかマイナスしています。 10 Workbooks.Open a & "\" & b '1 11 Ln = Workbooks(fN).Sheet1.Cells(Rows.Count, 2).End(xlUp).Row '2 ★エラーが発生するコード★ 12 13 If vbNo = MsgBox("ファイルパス:" & a & vbCrLf & "ブック名:" & b & vbCrLf & vbCrLf & "この場所に内容を転記しますか?", vbYesNo, "転記する/しない") Then Exit Sub 14 15 '以降3 転記用のコード 16 17end sub 18
fnをCstr関数で型変更したら出来ないかな?
それか、fN = Range("A2").ValueではなくfN = Range("A2").Textにするかだね。
私の場合、sheetに関してはしっかりと探すコードを組んでいるから、違ってたらごめんよ。
回答3件
あなたの回答
tips
プレビュー