取り込み先ファイルの各シートの項目名(外注在庫)を検索して、検索した項目のデーターを元ファイルの各シートの項目名(外注)に転記するのですが、取り込み先ファイル項目(外注在庫)を検索するVBAコードが分からず苦慮しております。どなたかお分かりになる方ご教授願います。
※取り込み先ファイルの各シートの項目名(外注在庫)の列は決まっておらず検索してデーターを取得して、元ファイルのE列(外注)に転記する。
元ファイルのE列は固定です。
添付画像
画像上が、取り込み先ファイル
画像中が、元ファイル
画像下が、ユーザーフォーム
Private Sub CommandButton1_Click()
Dim fpath As String
Dim wb1 As Workbook, wb2 As Workbook
Dim sh As Worksheet
Dim r As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb1 = ThisWorkbook
fpath = wb1.Path & "\"
Set wb2 = Workbooks.Open(fpath & ComboBox1.Text)
For Each sh In wb2.Worksheets
With sh
r = wb1.Worksheets(sh.Name).Cells(Rows.Count, "E").End(xlUp).Row + 1
.Range("AN2:AN" & .Cells(Rows.Count, "AN").End(xlUp).Row).Copy
wb1.Worksheets(sh.Name).Range("E" & r).PasteSpecial Paste:=xlPasteValues
End With
Next sh
wb2.Close
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
よろしくお願いいたします
No.1
- 回答日時:
Copyしている行を次のように変更すれば、行けると思うのですが・・・。
With .Columns(WorksheetFunction.Match("外注在庫", .Rows(1)))
Range(.Rows(2), .Rows(Rows.Count).End(xlUp)).Copy
End With
ただですね、外注在庫って、数式で求めていませんか?
その場合、End(xlUp)は、求めたい最終行を返してくれませんよ。
最終列を求めたいのであれば、「部品」等の列で判断した方が良いような気がします。
No.3
- 回答日時:
With .Columns(WorksheetFunction.Match("外注在庫", .Rows(1)))
上記の行を下記のように修正してみて下さい。
With .Columns(WorksheetFunction.Match("外注在庫", .Rows(1)、0))
もしこれでエラーになるようであれば、転記元の1行目に、"外注在庫"の文字列が無いはずです。念のため、入力されている文字列を確認してみて下さい。
No.4ベストアンサー
- 回答日時:
Match関数はご存知ですよね?検索範囲の中から検索値を検索して、その位置を返してくれる関数です。
今回追加していただいた第3パラメータは「照合の型」で、0を指定すると検査値に一致する値のみが検索の対象となります。なお、一致するものが無かった場合、エラーとなります。
今回のエラーの原因は、これだと思います。取り込み先ブックのすべてのシートに、”外注在庫”があることを確認してください。
「”外注在庫”の列が無いシートもある」なんて落ちは、勘弁してくださいね。
ちなみに、「照合の型」を省略した場合は、検査値以下の最大の値が検索されます。
前回、E列(外注)の値が転記されたのは、これが原因と思われます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
精子が黄色?
-
勃起する時って痛いんですか? ...
-
尿検査前日に自慰行為した時の...
-
尿検査の前日は自慰控えたほう...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
精子に血が・・・
-
中出しをするとお腹が痛い・・・。
-
納豆食べた後の尿の納豆臭は何故?
-
甲状腺腫れ
-
EXCELで式からグラフを描くには?
-
EXCELで条件付き書式で空白セル...
-
筋トレするとチンコが縮んじゃ...
-
爪が紫色?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報
ありがとうございます。
実行した所、コンパイルエラーとなってしまいます。
(参照が不正または不完全)
変更の仕方が悪いのか分かりません
すみません
コンパイルエラーは発生しないのですが、現在 ”外注在庫”データーが転記されず
E列の外注のデーターが転記されています。
Private Sub CommandButton1_Click()
Dim fpath As String
Dim wb1 As Workbook, wb2 As Workbook
Dim sh As Worksheet
Dim r As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb1 = ThisWorkbook
fpath = wb1.Path & "\"
Set wb2 = Workbooks.Open(fpath & ComboBox1.Text)
For Each sh In wb2.Worksheets
以下は次に
With sh
r = wb1.Worksheets(sh.Name).Cells(Rows.Count, "E").End(xlUp).Row + 1
With .Columns(WorksheetFunction.Match("?O?????", .Rows(1)))
Range(.Rows(2), .Rows(Rows.Count).End(xlUp)).Copy
End With
wb1.Worksheets(sh.Name).Range("E" & r).PasteSpecial Paste:=xlPasteValues
End With
Next sh
wb2.Close
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
お忙しい中 対応して頂きありがとうございます。
状況ですが、
With .Columns(WorksheetFunction.Match("外注在庫", .Rows(1), 0))へ変更し実行した所
変更したところで、実行時エラーが出ます。データーは取り込み先ファイルから元ファイルに
転記されていますが、変更したところでエラーになっているようなのですが、分かりません。
画像添付します
お手数をお掛けてすみません
忙しい中対応して頂きあ誠にありがとうございます。
もう一度、別の新しい取り込み用ファイルで、確認した所動作がokとなりました。
すみません確認不足で貴重な時間を使わせてしまいました。
ちなみに前のファイルを使用するとダメでした。
親切丁寧にアドバイス頂きありがとうございました。