返回列表 上一主題 發帖

資料剖析(TextToColumns)對象可以不是儲存格嗎?

本帖最後由 GBKEE 於 2013-2-5 16:37 編輯

回復 6# chiata
使用發現字串可以運算,但不能做<、=、>等判斷
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A As String, B As Variant
  4.     A = "A5"
  5.     B = "10"
  6. '    MsgBox A * B   '** VBA 傳回: 錯誤值13  "型態不符合"
  7.     If IsNumeric(A) And IsNumeric(B) Then MsgBox A * B Else MsgBox "型態不符合"
  8.     A = "5"
  9.     B = "10"
  10.     If IsNumeric(A) And IsNumeric(B) Then MsgBox A * B Else MsgBox "型態不符合"
  11.     A = "1,2,3,4,5,6,7,8,9,10"
  12.     B = Split(A, ",")
  13.     MsgBox B(0) * B(UBound(B))
  14.     MsgBox B(0) < B(UBound(B))  '1 < 10 =True
  15.     MsgBox B(0) > B(UBound(B))  '1 > 10 =False
  16.     MsgBox B(0) = B(UBound(B))  '1 = 10 =False  
  17.     A = "1,2,3,4,5,6,7,8,9,A10"
  18.     B = Split(A, ",")
  19.     MsgBox B(0) * B(UBound(B))    '** VBA 傳回: 錯誤值13  "型態不符合"
  20. End Sub
複製代碼

TOP

回復 8# chiata
你沒有宣告 變數t的型態為數字,vba將視為 字串的對字串的比對
  1. Option Explicit         '強制需宣告變數
  2. Sub test()
  3.     Dim t As Integer
  4.     For t = 1 To 110
  5.         If t <= "15" Then MsgBox t
  6.     Next t   
  7. End Sub
  8. Sub test2()
  9.     Dim t As Variant  ' Variant 資料型態是所有沒被明確宣告為其他型態  **等同沒有宣告變數***
  10.     For t = 1 To 110
  11.         If t <= "10" Then MsgBox t & " <= 10"
  12.         If t <= "20" Then MsgBox t & " <= 20"
  13.         If t <= "30" Then MsgBox t & " <= 30"
  14.     Next t
  15. End Sub
複製代碼

TOP

回復 10# chiata
  1. Sub test1()
  2.     Dim t As Integer
  3.     For t = 1 To 110
  4.         If t <= "9" Then MsgBox t & " <= 9"
  5.         If t <= "10" Then MsgBox t & " <= 10"
  6.     Next t
  7. End Sub
  8. Sub test2()
  9.     't 沒有明確宣告   
  10. For t = 1 To 110
  11.         If t > "30" Then MsgBox t & " > 30"         '當t<=9 為1位數 比對字串的第一位 "3"
  12.         If t <= "9" Then MsgBox t & " <= 9"        '當t<=9 為1位數 比對字串的第一位 "9"
  13.         If t <= "10" Then MsgBox t & " <= 10"   '當t<=9 為1位數 比對字串的第一位 "1"
  14.         MsgBox TypeName(t)
  15.     Next t
  16. End Sub
複製代碼

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題