返回列表 上一主題 發帖

[發問] 關於Union的用法及修改,兩個問題請教

回復 1# chiang0320
提問: "2. 如果條件改成小於2的儲存格選取,會顯示錯誤"
照你寫的語法看來一定會出問題的,因為你的 "B 欄位" 中
並無條件小於2 的 COUNT, 所以 Target 變數則從宣告為
Range 後一直到迴圈結束,未經異動 (處理),依然保留為其初始值。
接著當你執行 Target.Select 時,則一定會產生錯誤訊息。 將
  1.     Target.Select
複製代碼
改成
  1.     If Not Target Is Nothing Then Target.Select
複製代碼
至於將   Target  欄改成設定為列:
  1.             If Target Is Nothing Then
  2.                 Set Target = Cells(i, "B")
  3.             Else
  4.                 Set Target = Union(Target, Cells(i, "B"))
  5.             End If
複製代碼
換成
  1.             If Target Is Nothing Then
  2.                 Set Target = Rows(i)
  3.             Else
  4.                 Set Target = Union(Target, Rows(i))
  5.             End If
複製代碼
就可行了。

TOP

回復 1# chiang0320
修正後:
  1. Sub QQQ()
  2.     Dim i As Long, Target As Range
  3.    
  4.     For i = 2 To 11
  5.         If Cells(i, "B") > 30 Then
  6.             If Target Is Nothing Then
  7.                 Set Target = Rows(i)
  8.             Else
  9.                 Set Target = Union(Target, Rows(i))
  10.             End If
  11.         End If
  12.     Next
  13.     If Not Target Is Nothing Then Target.Select
  14. End Sub
複製代碼

TOP

回復 4# GBKEE
不錯的詮釋,謝謝指導!

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題