VBA 初心者です。先日、検索について、Find メソッドを勧めて頂いて現在勉強中です。お陰様で、Find メソッドを使って、入力シートから台帳へ転記、台帳から入力シートへの代入ができるようになりました。ありがとうございました。
まだ、重複を防ぐ方法が全く見当がつきません。教えて下さい。よろしくお願いします。
Sub 重複防ぐ方法()
Dim c As Object
Dim myKey As String
Dim myRow As Long
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Worksheets("台帳")
Set Sh2 = Worksheets("入力")
Dim i As Long
For i = 4 To 4 ★1
'入力データを台帳へ転記
myKey = Sh2.Range("i2").Value
With Sh1.Range("a2:u10")
'台帳のA2:U10の範囲をmyKey = 入力の.Range("i2")の検索コードで検索
Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlWhole, _
SearchOrder:=xlByColumns, MatchByte:=False)
If Not c Is Nothing Then '検索値が見つかったら(訂正修正)
★2 c.Offset( , )?又は、その他の方法で、行番号?を取得してSh2.Range("i2:u2")のデータを
A列(検索コード)の隣B列~U列に代入したい。
If c Is Nothing Then '検索値が見つからなかった、新規'データとして台帳へ転記
With Sh1
myRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range(.Range("A" & myRow), .Range("M" & myRow)).Value = Sh2.Range("i2:u 2").Value ‘最下行の1行下へ代入する
★1For i = 4 To 4の意味は分かっていませんが、数値を変えてみたら、この数値で動いていますが 意味を教えて下さい。
★2部分は可能でしょうか?教えて下さい。
以上 よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
>★1For i = 4 To 4の意味は分かっていませんが、数値を変えてみたら、この数値で動いていますが 意味を教えて下さい。
正直不明です。
1.
For i = ○ To ▲ とは変数:i に○から始まり▲になるまでの数値を順に入れていくループ処理の1つです。
例えば
For i = 1 To 10
Range("A" & i).Value = i * 2
Next
とあったらセルA1~A10に2,4,6,8,・・・20と値を入れることが出来ます。
でも今回は 4 To 4 で動いているってことならそもそも
i = 4
とするだけで十分なはず。(For に対する Next も不要となります)
2.
それと変数:i が何に使われているのか、質問文のコードが中途半端?に切れているので回答者には推測もできないと言う点ですかね。
>★2部分は可能でしょうか?教えて下さい。
・Sh2.Range("i2:u2")のデータ
・A列(検索コード)の隣B列~U列に代入
可能か?と問われると列数(セル個数)が違いますよね?
なのでどのように入れればよいか不明です。
そこの詳細は必要かと。
-------
ついでですが
>With Sh1.Range("a2:u10")
検索したい範囲はA列ではなくて?
他の列に検索値が存在するのでしょうか?
あと前回の質問は一旦けりをつけるなら閉じたほうが宜しいかと。
そしてその質問アドレスを関連するなら次回の質問に貼り付けておくとわかりやすいですかね。(非公開にされてるので質問者は追えないもので)
ありがとうございます。前回も参考サイトまで紹介頂きました。助かっています。回答を精読しまして再度お聞きしたいと想います。
また、前回初めての質問で、とじ方の必要性も方法も知りませんでした。今から確認して閉じます。解らない事だらけですが、宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
B列の最終行までA列をオート...
-
VBAで指定範囲内の空白セルを左...
-
targetをA列のセルに限定するに...
-
VBAのコードを教えてください
-
VBscriptでExcel sheetの並び替...
-
vba 2つの条件が一致したら...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAコンボボックスで選択した値...
-
JTableの行の幅設定
-
VBA とびとびの列を結合させる
-
Changeイベントでの複数セルの...
-
VBマクロ 色の付いたセルを...
-
スプレッドシートのデータをGAS...
-
VBA。壁の間隔Xミリの中に、5...
-
Excel 複数列から語句を含む行...
-
エクセル マクロ 後列から条件...
-
Excelで、あるセルの値に応じて...
-
VBA 何かしら文字が入っていたら
-
特定の条件に合致したセルを別...
-
Excel VBA 足し算の問題を自動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAのコードを教えてください
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
エクセルvbaについて
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
VBA UserFormからの転記で
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
VBマクロ 色の付いたセルを...
-
VBAで指定範囲内の空白セルを左...
おすすめ情報