[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表の特定文字を含む列を別シートに転記する方法』(りょー)
表の特定文字を含む列を別シートに転記する方法を教えてください。
下記コードで動くと思ったのですが、うまくいきません。
どなたかご教示頂けないでしょうか。
シート「1」T列にある「あ」が含まれる行全てを
シート「検索結果」に張り付ける。
Sub サンプル()
Dim i As Long Dim j As Long Dim rw As Long
Sheets("1").Activate rw = Cells(Rows.Count, 1).End(xlUp).Row
j = 1
For i = 2 To rw If InStr(Cells(i, 20), あ) <> 0 Then With Worksheets("検索結果") .Cells(j, 1).Entirerow = Cells(i, 1).Entirerow j = j + 1 End With End If Next i
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
Dim rw As Long Dim あ = "あ" '追加 Sheets("1").Activate
(ひまつぶし) 2021/09/10(金) 14:42
多分りょーさんは >If InStr(Cells(i, 20), "あ") <> 0 Then としたつもりなのだろう。 VBAのオプションで変数の宣言を強制するにチェックを入れておけばVBA入力時に気づけただろう。 (ねむねむ) 2021/09/10(金) 15:07
あ に ""をつけ忘れておりました。
""をつけて実行したのですが、うまく認識できません。
エラーは出ないのですが、検索結果にコピーがしません。
どなたかご教示頂けないでしょうか。
(りょー) 2021/09/10(金) 15:36
.Cells(j, 1).EntireRow.Value = Cells(i, 1).EntireRow.Value
(めざめるパワー) 2021/09/10(金) 15:53
レイアウトが示されていないので、実はA列が空っぽでFor〜Nextが1件も処理されてないとか、コードの問題ではなく、実験環境側の問題であることも考えられます。
また、別案となりますが、
(1) InStr関数ではなくLike演算子を使う (2) 逐一コピーするのではなく、対象のセルをピックアップしておいてから、一気にコピペする
といったアプローチもあると思うので紹介しておきます。
Option Explicit Sub 別案() Dim i As Long Dim MyRNG As Range
Stop 'ブレークポイントの代わり With Worksheets("1") For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row If .Cells(i, "T").Value Like "*あ*" Then If MyRNG Is Nothing Then Set MyRNG = .Cells(i, "T") Else Set MyRNG = Union(MyRNG, .Cells(i, "T")) End If End If Next i End With
If Not MyRNG Is Nothing Then MyRNG.EntireRow.Copy Worksheets("検索結果").Range("A1") End If End Sub
(もこな2) 2021/09/10(金) 15:55
(もこな2 ) 2021/09/20(月) 18:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.