返回列表 上一主題 發帖

If Not c Is Nothing Then語法

本帖最後由 hugh0620 於 2012-7-17 11:09 編輯

回復 1# m09903020

RR = Sheets("SAMRD").Cells(1, 3) <==    這一句帶出來的是[無]
                                                                                  這樣的寫法RR=Sheets("SAMRD").Cells(1, 3) 的內容
                                                                                  Sheets("SAMRD").Cells(1, 3)的內容就必須要是儲存格的寫法
                                                                                  才能套用到下一句
b = Sheets("QS").Range(RR)            <=== run到這一句就是錯誤的

修改成以下的方式~ 可避免錯誤
If Sheets("SAMRD").Cells(1, 3) = "" Then Exit Sub    '當Sheets("SAMRD").Cells(1, 3) = "" 跳出執行
RR = Sheets("SAMRD").Cells(1, 3)
b = Sheets("QS").Range(RR)


If Not c Is Nothing Then Drr = c.Address    <====若這一句都沒執行到 Drr = c.Address

Sheets("order_pool").Range(Drr).Delete      <====當Drr上面那一句是空的時候,這一句就會有錯誤產生
  1. Sub Call_order_pool_Add_batch_pool_del_order_pool2()

  2. Dim RR, Drr As String

  3. Dim i, j, num_of_item, opA, OC As Integer

  4. Dim r, c, b As Variant

  5. RR = Sheets("SAMRD").Cells(1, 3) '(1,3)要幹嘛?Sheets("order_pool").[C1].Resize(s, 1) = Arr2

  6. b = Sheets("QS").Range(RR)


  7. Sheets("batch_order_pool").Cells(seed_counter, a_batch_followering_order_counter + 1) = Sheets("總訂單").Cells(b + 1, 1)

  8. OC = 100 - RC

  9. If (Sheets("總訂單").Cells(b + 1, 1) > 0) And (Sheets("總訂單").Cells(b + 1, 1) < 3001) Then
  10.   
  11.   num_of_item = 5
  12.   
  13. ElseIf (Sheets("總訂單").Cells(b + 1, 1) >= 3001) And (Sheets("總訂單").Cells(b + 1, 1) < 6001) Then
  14.   
  15.   num_of_item = 10

  16. ElseIf (Sheets("總訂單").Cells(b + 1, 1) >= 6001) And (Sheets("總訂單").Cells(b + 1, 1) < 9001) Then '50 items
  17.   
  18.   num_of_item = 50
  19.   
  20. Else

  21.     MsgBox "error這麼九很奇怪ㄟ你"

  22. End If

  23.   Call cal_RC(num_of_item)
  24.   
  25.   If RC >= 0 Then
  26.   
  27.   For j = 1 To num_of_item
  28.    
  29.      Sheets("batch_pool").Cells(seed_counter, OC + j) = Worksheets("總訂單").Cells(b + 1, j + 6)
  30.   
  31.   Next

  32.     For Each r In Worksheets("order_pool").Range("A1", Sheets("order_pool").Range("A1").End(xlDown))
  33.          Set c = r.Find(b, , , xlWhole)   '設定內容為b的儲存格物件為c
  34.          
  35.              If Not c Is Nothing Then Drr = c.Address
  36.             '每找到C則將C的相對位址放進DRR
  37.     Next
  38.         
  39.         Sheets("order_pool").Range(Drr).Delete '刪除從order pool取出之資料
  40.       
  41.   End If
  42.   
  43. End Sub
複製代碼
學習才能提升自己

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題