変数値をCSVに追記できないケースがある
このスレッドで一旦解決済みのテーマです。
CSVの出力(上書き)がうまくいかないケースに遭遇しました。
A列だけが出力され、B列以降が切り捨てられます。
Set region = ws.Range("A1").CurrentRegion
For Each Row In region.Rows
For Each cell In Row.Columns ← ここで切り捨てられてるっぽい
- Row.Columnsを手前で定義したmaxColumnに差し替えたら、上書きされなくなった
maxColumn = ws.Range("XFD1").End(xlLeft).Column
- 範囲に単一の列番号指定を試みたことになる、、当然か、、
- iのループにすれば、Range("A" & i & ":" & maxColumn & i)で何とかなりそうではある
- データは10行×26列
- ただしB列が一律ブランク ← .CurrentRegionが1列とみなされる原因っぽい
- 文字コード対応の曖昧さがついに露呈したかと思いきや
- モードBで動かすと、B列は一律ブランクになる
- B列に一律ダミーデータを入れちゃうのは最終手段に取っておきたい
- スマートな落としどころを見つけたい
この場合の正攻法や代替案って、どんなものが考えられますか?
- 列数は可変
- 同じシナリオを共用する別業務で、任意の列数に変更することがある
- .CurrentRegionはかなり都合が良かった
- モードCで、5列目が一律ブランクになることも考えられる
こんなシチュエーションに、常套手段があったりするのでしょうか?
anothersolution 編集済みのコメント
回答とコメントは、会員登録(無料)で閲覧できるようになります。
新規登録