0

コードの一部でセル値を返し、データを消去して不正なファイル名文字を削除しています。これらの文字の 1 つは、もちろん「?」です。何らかの理由で、一部のセルが前に ? が付いた内容を返しています。これは細胞の一部ではありませんが。

さらに、文字列をきれいにするために使用しているコードは、この先頭の ? を置き換えていません。私が望んでいたように空白で。

Function Clean(ByVal sFolderName As String) As String

Dim i As Long
Dim sTemp As String

For i = 1 To Len(sFolderName)
      Select Case Mid$(sFolderName, i, 1)
         Case "/", "", ":", "*", "?", "<", ">", "|"
             sTemp = sTemp & ""
         Case Else
             sTemp = sTemp & Mid$(sFolderName, i, 1)
     End Select
 Next i

Clean = sTemp

End Function

たとえば、セルの値は 8324297444 と表示されますが、cell.value プロパティを取得しようとすると、?8324297444 が返されます。次に、クリーンアップ関数が呼び出されると、これを先頭に保持します ? キャラクター。

ここで何が起こっているのかを理解しようとして、髪をかきむしっています。

誰にもアイデアはありますか?

4

2 に答える 2

1

ちなみにクエスチョンマーク(?)とアスタリスク(*)はエクセルの特殊文字です。次のように、チルド文字を使用して特別な文字をエスケープしてみてください。

       Case "/", "", ":", "~*", "~?", "<", ">", "|"

編集:次に、次のような文字コードを試してください:

       Case "/", "", ":", CHR(42), CHR(63), "<", ">", "|"
于 2012-04-11T14:45:58.623 に答える
0

これを何日もトラブルシューティングした後、修正できない孤立したインシデントのようです。SO やネット上のその他のソースで提供されているすべての可能な提案を使い果たしました。

この動作の影響を受けたデータを特定し、手動でキーを再設定することで、状況を修正することができました。

これは最も効率的な解決策ではありませんでしたが、問題は解決しました。

この問題が発生した場合は、これが私が見つけた唯一の修正であることに注意してください。

于 2012-09-16T22:51:26.833 に答える