[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『+が入る文字列が#NAME?と表示される』(おとっく)
テキストデータをエクセルで開くとき、テキストウィザード上では 「+」が入った文字列がきちんと表示されていますが、エクセルにインポートした後 エクセル上で確認すると「#NAME?」と表示されてしまいます。
エクセル上で修正ではなく、インポートする段階で修正できる方法 きちんと表示される方法はありますか?
テキストウィザードは 区切り文字「タブ」 文字の引用「”」 列のデータ形式「G/標準」か「文字列」
で試してみました。
数式バーに何が表示されているか、確認してみて下さい 多分、「=+あ」のような計算式になっていると思いますので 編集→置換→検索する文字列「=+」置換後の文字列「'+」 と、してみたらいかがでしょうか?
(Ohagi)
(Ohagi)さん
追記したのですが、エクセル上で修正する前に、インポートする段階で 修正したいです。(データが多いため・・・)
おとっくさん、ご自分の投稿にもHNを忘れずに!
VBAでならできると思いますが、
1) 各文頭の + を全て削除しますか? 2) 区切り文字は何ですか?
(seiya)
インポートする前に「+」で始まるテキストには「'」をつければ良いと思いますが… EXCEL2002で試したところ「文字列」に指定すれば、ちゃんと表示されました
(Ohagi)
(seiya)さん
+は削除したくないです。 「+○●○○」というタイトル名なのですが エクセルにインポートすると「+」表示があるためか「#NAME?」 になってしまっているようなのです。
(Ohagi)さん
今から 一度、試してみます。
(おとっく)
vbaならこんな感じです
Sub test() Dim myDir As String, fn As String, a(), n As Long, delim As String, ff As Integer, txt As String myDir = "c:\test\" fn = "test.txt" delim = Chr(32) If Dir(myDir & fn) = "" Then MsgBox "ディレクトリ、又はファイル名が違います" Exit Sub End If ff = FreeFile Opne myDir & fn For Input As #ff Do While Not EOF(ff) Line Input #ff, txt n = n + 1 ReDim Preserve a(1 To n) a(n) = Split(txt, delim) Loop Close #ff With ThisWorkbook.Sheets(1) .Cells.NumberFormat = "@" With .Range("a1") For i = 1 To n If IsArray(a(i)) Then .Offset(i-1).Resize(,UBound(a(i))+1).Value = a(i) Else .Offset(i-1).Value = a(i) End If Next End With End With End Sub (seiya)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.