[[20070306102618]] 『+が入る文字列が#NAME?と表示される』(おとっく) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『+が入る文字列が#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.