查看完整版本: 只能判斷文字,不能判斷數字
頁: [1]

fashiontop 發表於 2014-8-9 01:02 PM

只能判斷文字,不能判斷數字

本帖最後由 fashiontop 於 2014-8-9 01:04 PM 編輯

Sub 刪除()     Dim i As Integer
            i = 1
            Do Until i = 10000
            i = i + 1
                If Range("K2") = Range("A" & i) Then
                    Range("A" & i) = ""
                    Range("B" & i) = ""
                    Range("C" & i) = ""
                    Range("D" & i) = ""
                    Range("E" & i) = ""
                End If
             Loop
End Sub


目標 : 已知一個數字,要在表單A欄尋找一樣的數字,然後把該列全部清空。

問題:我的表單是別人輸入的,所以有些是"文字格式"(左上有綠色標誌),有些是"通用格式"

            執行的時候只有"文字格式"會被清除,"通用格式"則無法。

想法:或許是函數有判斷數字的寫法?亦或要把表單一個一個改成文字?

其他的困難:上述"一個一個改成文字",有想過寫迴圈,不過好像連單一個都弄不好。
                        假設原本是通用格式,我在該格右鍵改成"文字格式"後,數值不會馬上
                        變成文字,還需要把數值重新輸入一遍,按ENTER,才回改成文字(左上有綠色標誌)
                        用vba寫成把該格數值貼到(任意)別處,再貼回來,結果還是通用格式,並不會改格式。









...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

ttokinmba 發表於 2014-8-9 02:11 PM

本帖最後由 ttokinmba 於 2014-8-9 02:12 PM 編輯

先說 小弟我已經少說十年沒碰過VB了....只能在邏輯上幫忙解答 語法上可能就要自己去查一下了(小弟碰的年代是VB6...)

請問A欄全字串? 之後找一個數字? 因為A欄的話全是字串你用數值去搜尋是找不到的,你必須先將要找的答案轉成字串,轉成字串後在進去A欄中尋找相符的字串,這邊給你個MSDN的連結你可以去看看,不過好久沒碰語法了所以你可能要從那個網頁中找到查詢字串的語法之後一樣回MSDN中尋找應該就有解答了。做好能做個輸入限制像是限制輸入的必須為數值型態或者字串型態或者限制為英文之類,小弟是學C#的C#中記得好像是用Match還有其他方法這只是其中一個,查一下關鍵字"VB 查詢相符字串" 這樣應該就能找到答案了,如果你還要運算的話記得再把字串強制轉型回數值型態(或者做檢查後轉型),這樣應該就OK了~
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

Jeepluo 發表於 2014-8-9 10:28 PM

可以把文字轉換成數字再判斷,判斷方式有很多方式 如使用 cint 或 val 函數

snowyearkimo 發表於 2014-8-26 10:29 PM

函數有判斷數字的寫法是IsNumeric().

snowyearkimo 發表於 2014-8-27 06:49 AM

snowyearkimo 發表於 2014-8-26 10:29 PM static/image/common/back.gif
函數有判斷數字的寫法是IsNumeric().

另外在程式於輸入之前先將K2的格式設成"文字".
這可以透過excel本身提供的attribute來達成.<br><br><br><br><br><div></div>

linclg 發表於 2014-9-30 03:36 PM

如果將rang內每個字轉成asc ii碼,就應該不會有格式之問題吧!因為在寫plc傳遞程式時,都是先轉成asc ii,如此才不會有格式之問題發生!
頁: [1]