![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっております。
別々のブックに転記するマクロを
色んなサイトを参考にして、使って問題なかったのですが、
特定のセルに数字を入れたら
その数字が入ってる行だけを別のブックに転記するマクロに変えようとしていますが
コードの構築がうまくいきません。
下記に図と転記マクロを記述します。
アドバイス及び何か別の方法があればご教授願えないでしょうか?
お手数ですがよろしくお願いいたします。
【大元管理簿】
A B C D E F G H I J K
1 見出し →→
2 ↓ ■
3 ↓
4 ↓
5 ↓
6 ● ● ● ● ● ● ● ● ● ●
↓(入力データは下まで続きます)
行1~5までは項目の見出しで
B6からK6まで入力データがあります。(●部分)
以下、下まで続きます(100行くらい)
I2のセルに管理Noを入れて
その管理Noの行のデータを別ブックに転記
Sub 転記()
Dim Sh1 As Worksheet, Sh2 As Worksheet
Dim lastRow1 As Long, lastRow2 As Long
Dim i As Long
Set Sh1 = Workbooks("大元管理簿.xls").Worksheets(1)
Set Sh2 = Workbooks("転記先1.xls").Worksheets(1)
lastRow1 = Sh1.Range("B" & Rows.Count).End(xlUp).Row
If lastRow1 = 1 Then Exit Sub
With Sh2
For i = 6 To lastRow1
lastRow2 = .Range("B" & Rows.Count).End(xlUp).Row
.Range("B" & lastRow2 + 1 & ":K" & lastRow2 + 1).Value = Sh1.Range("B" & i & ":K" & i).Value
Next i
End With
End Sub
上記のコードがほかに
転記先1 転記先2 転記先3と転記先を別に変えて
それぞれボタンで切り分けています。
![「セルに入れた値の行のブック転記」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/c/527405539_559299c24b22b/M.jpg)
No.3ベストアンサー
- 回答日時:
No.2 です。
ちょっと舌足らずな部分があったので、追加で説明します。すみません。I2 セルの値が B 列で見付からなかった場合、マクロがエラーになってしまいます。それを防止するため、次のとおり書いてください。
on error resume next
i = worksheetfunction.match(Sh1.range("i2").value, Sh1.columns("b"), 0)
on error goto 0
No.2
- 回答日時:
要するに、Sh1 の I2 セルの値を同じシートの B 列から探し出し、見付けた 1 行のみを転記したいということですね。
その場合のコードの書き方ですね?ループで全部の行を調べていってもいいですが、MATCH 関数で行番号を特定するのはいかがですか。
i = worksheetfunction.match(Sh1.range("i2").value, Sh1.columns("b"), 0)
で、該当の行番号 i が得られますね。1 行だけの処理だから、For ループは不要になりますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelで連続印刷をするマクロ
-
Excel2007 セルを右方向に削除...
-
Excelで更新日を自動的に入れたい
-
Excelでセル内の数式は残し値だ...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
エクセルで前のシートを連続参...
-
エクセルの複数シートの保護を...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルで前シートを参照して...
-
EXCEL マクロ データが転記さ...
-
シート名が変わる場合のVBAの設...
-
エクセルでファイルを開いたと...
-
VBAで条件によりフォントサイズ...
-
エクセル:ブックを開くとき、...
-
エクセルのマクロで指定条件一...
-
【Excel マクロ】 同一book内で...
-
特定のシートの削除を禁止した...
-
VBAでシートコピー後、シート名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
エクセル2003でマクロをおこな...
-
エクセルで、行ごとの並び替え...
-
値貼り付けをしても書式も貼り...
-
VBA コピーを有効行までループ...
-
yyyy/mm/ddの日付に一括変換す...
-
整数行を残し小数点の行を削除...
-
エクセルで行と列を入れ替えキ...
-
エクセルで特定の数字となる組...
-
エクセルで連番をマクロで
おすすめ情報