Board logo

標題: 迴圈請益,使用For Next陳述式:若b有值則a建立x [打印本頁]

作者: jackson7015    時間: 2012-5-18 09:05     標題: 迴圈請益,使用For Next陳述式:若b有值則a建立x

搜尋了迴圈命令的教學和討論,還是不太明瞭如何使用
想請教各位前輩們

B6:B43,B59:B96
有字元,則執行巨集後,在左方A欄位自動輸入"x"字號
[attach]11009[/attach]
作者: register313    時間: 2012-5-18 09:25

回復 1# jackson7015
  1. Sub xx()
  2. For Each B In Union([B6:B43], [B59:B96])
  3.   If B <> "" Then B.Offset(, -1) = "x"
  4. Next
  5. End Sub
複製代碼

作者: oobird    時間: 2012-5-18 12:51

  1. Sub YY()
  2. For Each C In [B:B].SpecialCells(2)
  3. C(1, 0) = "X"
  4. Next
  5. End Sub
複製代碼
這樣可避免循環到空白儲存格
作者: alumi    時間: 2012-5-18 13:39

回復 3# oobird


    請問一下, 程式中 的  C 變數, 是 Range 物件嗎?
作者: oobird    時間: 2012-5-18 15:03

當然是。
你可以用MsgBox TypeName(c)
得知變數類型
作者: GBKEE    時間: 2012-5-18 15:49

回復 4# alumi
   Dim C As Variant    一 般迴圈 變數可設為 Variant 沒被明確宣告為其他型態 (可以為任何型態)
  1. Sub Ex()
  2.     [B:B].SpecialCells(xlCellTypeConstants).Offset(, -1) = "X"
  3.    ' [B:B].SpecialCells(2).Offset(, -1) = "X"   '  同上  xlCellTypeConstants 參數的值=2
  4. End Sub
  5. Sub YY()
  6.     Dim C As Variant  
  7.     For Each C In [B:B].SpecialCells(2)
  8.         C(1, 0) = "X"
  9.       ' MsgBox TypeName(C)
  10.     Next
  11.     MsgBox TypeName(C)
  12. End Sub
  13. Sub YY_A()
  14.     Dim C As Range
  15.     For Each C In [B:B].SpecialCells(2)
  16.         C(1, 0) = "X"
  17.     '    MsgBox TypeName(C)
  18.     Next
  19.     MsgBox TypeName(C)
  20. End Sub
複製代碼

作者: alumi    時間: 2012-5-18 23:05

本帖最後由 alumi 於 2012-5-18 23:25 編輯
當然是。
你可以用MsgBox TypeName(c)
得知變數類型
oobird 發表於 2012-5-18 15:03

  
   

    謝謝~~GBKEE




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)