返回列表 上一主題 發帖

[發問] [已解決]文字字串改為空字串

[發問] [已解決]文字字串改為空字串

本帖最後由 HSIEN6001 於 2012-5-24 01:43 編輯

請問,在迴圈裡碰到問題
應該為數字型態欄位的儲存格
出現不該出現的文字字串

如何,將不該出現的文字,取代為 "" 空字串

s2 = Replace(s2, #VALUE! , "")        '儲存格內有文字字元,取代為空字串 (#VALUE!   '非數字型態)

這樣寫不行 ^^!!
請教正確語法,謝謝!

回復 1# HSIEN6001


If Not IsNumeric([S2]) Then [S2] = ""

TOP

本帖最後由 HSIEN6001 於 2012-5-23 22:30 編輯

回復 2# register313

不好意思!
可能我表達的不夠清楚

'......部分省略
Dim s2 As String


'......其中一段
            isdeli = False
            s2 = ""
            For i = 1 To Len(s1)
                ch = Mid(s1, i, 1)
                If Mid(s1, i, 1) = """" Then
                    isdeli = Not isdeli
                Else
                    If isdeli Then
                        If ch <> "," Then
                            s2 = s2 & ch
                        End If
                    Else
                        s2 = s2 & ch
                    End If
                End If
            Next
            s2 = Replace(s2, "--", "00")    '儲存格內有"--",取代為"00"

問題:
S2回傳資料時,其中數字型態的儲存格出現"中文字"--->程式中斷
  --->假如,不預設 [不清楚] 字元個數狀態下
該怎麼讓那個s2遇到"文字型態"時,傳回""空字串?!

TOP

本帖最後由 register313 於 2012-5-23 23:08 編輯

回復 3# HSIEN6001

不太清楚你要的功能,程式的邏輯,也沒附檔案

不過s2應是當時就要即時處理,不是最後再處理
見紅色之部份

Dim s2 As String
isdeli = False
s2 = ""
For i = 1 To Len(s1)
    ch = Mid(s1, i, 1)
    If Mid(s1, i, 1) = """" Then
        isdeli = Not isdeli
    Else
        If isdeli Then
            If ch <> "," Then
                s2 = s2 & ch
            End If
        Else
            If IsNumeric(ch) Then s2 = s2 & ch   '若ch為數字則加入s2     
        End If
    End If
Next
's2 = Replace(s2, "--", "00")    '儲存格內有"--",取代為"00"

TOP

回復 4# register313

果然是我發錯主題,問錯方向
Sorry!!!!

VBA 匯入 Access
儲存格設定為數字型態時
出現非數字型態出錯

On Error Resume Next [已解決]

抱歉!!~深深一鞠躬!!

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題