[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル内容の転記ミスについて』(hoge22)
お世話になっております。
csvファイル(A)のセル範囲をxlsmファイル(B)に正確に転記できません。
(転記マクロは後述します)
説明)
・Aのセル範囲の一部がBに正確に反映されません(後述)
・データ数は同じで、データの並び順が異なっています
・現在のところ不具合パターンは把握できていません
・マクロを実行するのは週に一度程度で今まで特に異常に気付いておりません
(たまたま今回気付いたのかも知れません)
・今回気付くまでに行ったパソコン作業で、気になるのはWINの更新ぐらいです
・何度かパソコン、エクセルを再起動していますが、状況は同じです。
不具合内容)※抜粋です
No. Aのセル内容 Bの転記内容 判定 1 ショウナンサルヴォ ショウナンサルヴォ o 2 シャイニーゲール シャイニーゲール o - - - - 162 オーブラック ソプラノナイト X 163 カツノナインズ カツノナインズ o - - - - 325 シンデレラサリサ シンデレラサリサ o 326 ディオアステリア ディオアステリア o - - - - 968 メイショウハナモリ プラチナムレイアー X
使用マクロ)※関連箇所のみ
Dim sh As Worksheet '(B)ファイル Dim wsh As Worksheet '(A)ファイル Dim er As Long 'End of Row(wsh)
Set sh = ThisWorkbook.Sheets("hoge") Set wsh = Workbooks.Open("C:\hatena\W.csv").Sheets("W") (略) With wsh er = .Cells(Rows.Count, "C").End(xlUp).Row nm = .Range("C2:C" & er).Value ・・・ End With (略) With sh .Range("H2:H" & er).Value = nm ・・・ End With (略)
今まで(おそらく)問題なく、途方に暮れています。
どのようなことを確認したら解決できるかをご助言願います。
確認は明日以降になりますが、よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Dim nm()
の宣言を記載忘れていました…
(hoge22) 2022/05/01(日) 22:52
前者は仰っている意味がよくわかりません。
後者は抜粋ということで想像でしかありませんが、実はソートとかしてるとかありませんか?
とりあえず、提示の内容からして一旦配列に格納せず、↓のようにコピーして値貼付けするように考えてみてはどうですか?
Sub てすと() Dim er As Long
With Workbooks.Open("C:\hatena\W.csv").Sheets(1) er = .Cells(.Rows.Count, "C").End(xlUp).Row
If er < 2 Then Exit Sub
.Range("C2:C" & er).Copy ThisWorkbook.Sheets("hoge").Range("C2").PasteSpecial Paste:=xlPasteValues End With End Sub
さらに、提示されていない部分との絡みもありますがCSVファイルからのデータの取り込みであれば【ブック】として開かずに、【QueryTables.Add】を使ってデータの取り込みをするようにするのも手かもしれません。
(もこな2) 2022/05/02(月) 01:24
(γ) 2022/05/02(月) 07:39
nm()にAファイルの内容を格納した後に別の処理でCファイルの内容を格納しておりました。
通常はAとCは同じ内容なので深く考えずに同じ変数名を使用しましたが、時間差により
AとCの内容が異なることが判明しました。
(そもそも同じ内容ならCを取込む必要はなかったわけですが…恥)
QueryTables.Add…初見ですがcsvファイルの数万行データの取込みに向いていそうですね?
調べてみようと思います。
恥ずかしい相談内容ですみませんでした。
対策はこれからですが、ギブアップの時はよろしくお願いします。
もこな2さん、γさん、ありがとうございました。
(hoge22) 2022/05/02(月) 11:51
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.