このトピックに書きこむ |
---|
Re[5]: 文字列内の一文字のみ変更 | |
---|---|
[194884] Re[5]: 文字列内の一文字のみ変更- ■ / 記事引用/メール受信=OFF■ □投稿者/ ひまわり -(2022/05/07(21:21)) □U R L/ マナさん 質問がわかりづらくて本当にすいませんでした。 教えていただいたコードを参考に1行ずつ条件により 文字列内の後ろから2番目の0を1に書替えることが できました。(条件が整わないと0のままにする) 本当に助かりました。ありがとうございました。 |
[194883] Re[4]: 文字列内の一文字のみ変更- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2022/05/07(20:38)) □U R L/ こうですか? Option Explicit Sub test() Dim m As Long Dim r As Range, v, s Dim k As Long m = Application.Match("START_SETSUBI", Columns(1), 0) Set r = Cells(m + 1, 1).Resize(50) v = r.Value For k = 1 To UBound(v, 1) s = Split(v(k, 1), ",") s(3) = 1 v(k, 1) = Join(s, ",") Next r.Value = v End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194882] Re[3]: 文字列内の一文字のみ変更- ■記事引用/メール受信=OFF■ □投稿者/ ひまわり -(2022/05/07(20:22)) □U R L/ 質問が分かりにくくてすいません。 一文字("",0,0,0,0)内の後ろから二番目の0のみを1に書き替えることは可能でしょうか? |
[194881] Re[2]: 文字列内の一文字のみ変更- ■記事引用/メール受信=OFF■ □投稿者/ ひまわり -(2022/05/07(20:01)) □U R L/ データはA列に文字列で一文字("",0,0,0,0)で50行入っています。各項目はこの場合関係ありませんでした。 |
[194880] Re[1]: 文字列内の一文字のみ変更- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2022/05/07(19:09)) □U R L/ >各項目のデータがある場合 どういう意味でしょうか? >後ろから2番目の0 D列の0ということでしょうか? |
[194879] 文字列内の一文字のみ変更- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ひまわり -(2022/05/07(18:53)) □U R L/ お世話になります。 テキストデータ "",0,0,0,0 の後ろから2番目の0を1に一文字のみ書替えたいのですが、 可能でしょうか? (別に作成している項目毎のデータがない場合は0,ある場合は1に書替える) 1.オリジナルデータは "",0,0,0,0 が50行(各項目毎に1行使用) 1) 始まりは START_SETSUBI 2) 間の行に "",0,0,0,0 が50行 2) 終わりは END_SETSUBI ※始まりの前と終わりの後には別データがあります 2.データ入力がある場合は "ABC・・",999,999,1,2 1) 最初の""は文字数0〜20文字(半角全角混在) 2) 2番目の0と3番目の0は入力データ数により最大3桁の数字(半角) 3) 3番目は0と1のどれかで常に一桁(半角)【手入力編集部分】 4) 4番目は0、1、2、3のどれかで常に一桁(半角) ※後ろから2番目の0より前の文字数は変動する 3.現在の操作 手順1) オリジナルデータはテキストファイルのため、START_SETSUBIとEND_SETSUBI間の 50行分データをエクセルに読み込む(これはVBAでできています) 手順2) エクセル上で手入力編集 (後ろから2番目の0を各項目のデータがある場合のみ1に手作業で書替えている) 手順3) テキストファイルのSTART_SETSUBIとEND_SETSUBI間の元データを削除して新たに 50行分を書き戻している(これはVBAでできています) 今、このようなコードを書いているがうまくいきませんと提示できればいいのですが、 手順2)の後ろから2番目の0の1文字のみを書替えるのコードを、どのように書けばいいのか がわかりません。 どうかよろしくお願いいたします。 |