2つのシートで数字同士の検索で不一致が出てしまいます。
A表の1873101とB表の1873101は同じに見えるのですが、Vlookupでも不一致となります。
データが文字なっていることで起こっていると思われますが、
比較基と比較先のデータ列のデータを一括文字変換させたいのですが、
文字へ変換してもEnterを押さないと反映できません。
一つ一つのセルに対してLoopさせるには処理時間が掛かってしまうため
一括変換の方法についてお教えいただきたく、よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
比較基と比較先のデータ列のデータを一括文字変換させたいのですが、
ワークシート「A表」のA列の書式を文字列に変更するコード例
vba
1WorkSheets("A表").Range("A:A").NumberFormatLocal = "@"
修正案
上記のコードは書式は文字列に変更されますが、データ型は数値のままでした。
下記のリンク先で紹介されいる変換方法をVBAにしました。
Excel 文字列を数値に一括変換~Excelの達人技
vba
1WorkSheets("A表").Range("A:A").TextToColumns DataType:=xlDelimited, FieldInfo:=Array(1, 2)
これで書式もデータ型も文字列に変換されます。VLOOKUPのエラーも解消されるのを確認しました。
ちなみに、文字列を数値に変換する場合は、下記になります。
vba
1WorkSheets("A表").Range("A:A").NumberFormatLocal = "G/標準" 2WorkSheets("A表").Range("A:A").TextToColumns DataType:=xlDelimited, FieldInfo:=Array(1, 1)
投稿2019/12/11 04:48
編集2019/12/12 05:05総合スコア34073
0
ベストアンサー
###回答
Excelの型変換は、【書式設定➡F2➡Enter】を実施しないと、内部的に変わらないみたいです。
http://excel-magic.com/post-1107/
そのため、【書式設定➡F2➡Enter】のマクロを作りました。
型変換したいデータがF列の1行目から複数行格納されている想定で作りました。
SendKeysでF2とEnterを送ってるだけなので、VBEditorから実行すると、VBEditorにキーが送信され失敗しますので、マクロ形式で実行してください。
数値書式も一応記載しておきました。
以下、プログラム、ご確認ください。
Sub macro() Dim MaxRow '//F列の最終行を取得 MaxRow = Range("F1").End(xlDown).Row '//処理対象のシートを選択 Worksheets("sheet1").Activate '//処理対象の列の先頭セルを選択 Worksheets("sheet1").Range("F1").Select '//F列先頭から下にデータの数だけ、書式設定 For i = 1 To MaxRow 'Worksheets("sheet1").Cells(i, 6).NumberFormatLocal = "0_ " '//数値書式 '//Cells(i,列番号)※F列なら6 Worksheets("sheet1").Cells(i, 6).NumberFormatLocal = "@" '//文字列書式 '//F2キー送信 SendKeys "{F2}" '//Enterキー送信 SendKeys "{ENTER}" Next MsgBox "FIN." End Sub
以上
投稿2019/12/11 05:39
編集2019/12/11 14:04総合スコア640
0
VLOOKUPで指定する検索値の方を検索範囲の型に合わせれば、修正が少ないんじゃないでしょうか?
(例)
検索範囲のデータ:文字列
Vlookup検索値:数値
なら、検索値を文字列に変える
※検索範囲のデータに文字列と数値が混在してる場合はできないと思いますが…
投稿2019/12/11 03:00
総合スコア640
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 00:52
2019/12/12 03:39