CSVからEXCELに取り込んだデータにおいて
F列が空白でないならばM列に1を入力 というプログラムを組んだところ、
手前のL列の区切り位置が原因で、正しく1と入力されない行がありました。(*)
そこで、”マクロの記録”から、L列に対してタブで区切る記述を盛り込んだところ、
1度目にボタンを押した時には上手くいかず(*の再発)、続けてもう1度同じボタンを押すと
正しく1と入力されます。これが毎回発生します。
原因と解消方法につき、何かご存知の方がいらっしゃいましたら教えていただけないでしょうか。
(自分だけが使用するExcelではないので、2度ボタンを押すことは避けたいです)
お手数ですが、よろしくお願いいたします。
No.3
- 回答日時:
#1です。
M列セルは、入力されているが、見えないと言う事でしょうかね。
区切り位置でなく、L列、M列の表示形式を変更すると見えるのかな?
例えば、
Range("L:M").NumberFormatLocal = "G/標準"
Range("L:M").HorizontalAlignment = xlRight
あと
Cells(行, 列).Offset(0, 7).Value = "1" 1を文字として扱いたいのなら
="'1"と変えてみてはどうでしょう。
一連のご質問の内容を理解できていませんので、私の限界ですね。
No.2
- 回答日時:
こんばんは
CSVを取り込んだシート上で、プログラムを実行しているものと解釈しましたが、
>区切り位置が原因で、正しく1と入力されない行がありました
という状況が想像できません。
後から、文字区切りを利用して展開したりして上書きされてしまうというような意味でしょうか?
そのようなことをしていなければ、手操作でもプログラムでも「入力した値が正しく入力されない(?)」というようなことは考えられないのですけれど・・・
どのようなデータで、何をすると、どうなるのでしょうか?
ご返信ありがとうございます。わかりにくい表記で、混乱を招いて申し訳ございません。補足のところに画像と説明を加えましたので、お手隙で再度ご確認いただけませんでしょうか。ご迷惑をおかけしますが、よろしくお願いいたします。
No.1
- 回答日時:
こんばんは、
プロセス、データ内容が分からないので、どのタイミングで実行するのが良いのか、わかりませんが、
* が不要なら、データをReplaceすれば良いように思います。
RangeObject = Replace(RangeObject, "*", "")
ご回答ありがとうございます。伝え方が悪く、大変申し訳ございません。
1と入力される代わりに*と入力されるわけではなく、
「手前のL列の区切り位置が原因で、正しく1と入力されない行がある」という事象自体を、後の文章で参照するために、注釈の(*)をつけておりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- その他(趣味・アウトドア・車) Arudino nanoが正常に動作しない原因 1 2022/10/30 18:29
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
すべてのシートを選択してエク...
-
Excelのデータが重いのはなぜで...
-
Excel VBA 答えが0になってし...
-
ローマ字入力で「トゥ」を入力...
-
Excelでエラー(#N/Aなど)値を...
-
1点の辻の字に変換したいがエク...
-
「未使用」と「不使用」ってど...
-
自動改札のエラーって…
-
Word文書に、チェックマーク(...
-
excelで小数点0を表示させる方法
-
SUM関数の範囲に#N/Aが...
-
このような迷惑メールが一日に...
-
もしセルが"#N/A"なら~をする...
-
PCの内蔵メモリにデータは残る?
-
Eエクセルの計算方法で空欄を0...
-
ジーメールのアドレスについて
-
3Dプリンターを使う場合 パソコ...
-
西暦の2桁表記に使うアポスト...
-
エクセルからアクセスにインポ...
-
日本通信の当月利用データ量は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで時刻を自動入力する方法
-
Excelのデータが重いのはなぜで...
-
エクセル。ブック内検索で重複...
-
Excel VBA 答えが0になってし...
-
EXCEL VBA 区切り位置のプログ...
-
合計が0の行を削除
-
エクセルで、「袋詰め問題」を...
-
excelで下一桁を選択する方法
-
複数のスプレットシートで入力...
-
エクセルで30日以内に同内容の...
-
A列を検索し一致した行を表示。...
-
エクセルマクロについて データ...
-
スプレッドシートで、指定した...
-
エクセルの中の漢字を一度にカ...
-
Excelの関数についてしつもんで...
-
エクセルで隣のセルと同じ数字...
-
VBAに関する質問です。
-
エクセルの入力 エンターキーで...
-
エクセルで人名を50音順に表...
おすすめ情報
質問内容がわかりづらく、また補足が遅くなって、申し訳ございません。
同じ形式でダミーデータを作成しましたので、添付いたします。
F列がブランクでないときにM列に1と表示させたいのですが、そのプログラムを実行すると、CSVから取り込んだ元データの形式が邪魔をして、添付のような状態になります。
すなわち、31行目のくまもんの行で、F列に記入があるのにM列に1と入力されません。
上手くいった29行目と見比べると、L列の表示形式に違いがあるようなので、手動でL列の区切り位置を変えてからプログラムを実行したところ、M31セルにも1と入りました。
そこで、M列に1と入力する前にL列の区切り位置を変えるプログラムを追記しました。
しかし、1度目のプログラム実行では1と入力されず、続けてもう一度同じプログラムを実行すると1と入力されます。これの原因究明と解消をしたいと考えております。
prefSh.Activate
'L列 区切り位置の変更
Columns("L:L").Select
Selection.TextToColumns Destination:=Range("L1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Dim 列 As Long, 行 As Long
列 = 6 '調査対象セルの列番号
For 行 = 2 To workEndR '行番号2から最終行まで
If IsEmpty(Cells(行, 列)) Then '空白セルならスキップ
行 = 行 + 1
Else
Cells(行, 列).Offset(0, 7).Value = "1" '空白セルでないなら右方向に7つ先のセルに1と表示
End If
Next '繰り返す(Forへ戻る)