- ベストアンサー
文字の連結について
- Q列に入っている文章に条件を満たす文字(例:決済済み)が入っていれば、W列に入っている文字の後ろに「決定」という文字を追記したい
- A~Z列までデータが入っているシートで、Q列の文字条件を満たしていればX列に「決定」と入力し、W列とX列の文字を連結してW列に反映するマクロを作成しています
- マクロの中で文字の連結に「&」を使っていますが、連結が正しく行われていないため、解決方法を探しています
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 3、すべてチェックが終わったらWとX列の文字を連結してW列に反映してX列を削除する。 X列の処理は不要では?初回の判定ループ(行単位)で行って良いと思います。 For j = .Cells(65536, i).End(xlUp).Row To 2 Step -1 If Mid(Range("Q" & j), 3, 4) = "決済済み" Then Range("W" & j) = Range("W" & j) & "決定" End If Next j '決定決定となることを避けるなら、判定を増やすとか For j = .Cells(65536, i).End(xlUp).Row To 2 Step -1 If Mid(Range("Q" & j), 3, 4) = "決済済み" Then if Mid(Range("Q" & j), 5, 2) <> "決定" Then Range("W" & j) = Range("W" & j) & "決定" End If End If Next j
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
実際データは質問に上げるのは差しさわりを感じても、旨く他の外のありそうな例を考えるぐらいの努力はすること。 詳細の意味がぼやけて取りにくい。 そのまま出しても何処の会社の・誰のと言うことはわからず差し障りは無いと思うが、異常に神経質な質問者が多い。 其れで表権があいまいになったりする。 >Range(i & j), 2, 4) = こんなところへ&を使う例は無いのではないか。 Cells(i,j)かRange("K" & j)・・Kは列番号。この場合K列のデータを処理する場合の例。こんな書き方ではないか。 セルのあらわしかたなどVBAの最初の事項ではないか。 >Columns("X:X") はX列か不定の意味でXとしたのか? >連結に「&」を使う事はわかるのですがどうしても連結してくれません &場刈り注目せず、結果どうなったかの1例でも知るほうが、回答のためになる。
お礼
ご意見ありがとうございました。
- bin-chan
- ベストアンサー率33% (1403/4213)
> ※「決済済み」の文字の前には必ず2文字何かしらの文字が含まれます ならば以下の行はTrueにならないのでは? If Mid(Range(i & j), 2, 4) = "決済済み" Then また、列Qなんだから明記しては駄目ですか?再利用の予定がありますか? If Mid(Range("Q" & j), 3, 4) = "決済済み" Then なのでは? この行にカーソルを置いて、f9キー押下でブレークポイントを作っておいて f8キー押下すればStep実行できるし、Mid(Range("Q" & j), 3, 4)の値も カーソルで選択すれば確認できるので利用さなると良いと思いますよ
補足
深夜に回答ありがとうございます。 本来の物を表示出来ない為、少々間違えて載せてしまいました…大変申し訳ありません。 Q列は再利用はないので提示していただいた文でいけそうです。 実際は「決定」までは動くのですが…問題は連結なのですがヒントが頂ければありがたいです。
お礼
再度ご回答ありがとうございました。 仕事の注文と締切が短かった為てんぱっていたところ大変助かりました。 まだまだ無駄な所が多く、勉強になりました。 ありがとうございました。