返回列表 上一主題 發帖

[發問] [附圖][附程式碼]VBA新手求解

回復 1# chengchi1223
以單一活頁簿的模式,而做的範例:
  1. Sub Ex()
  2.     Dim sh As Worksheet, dat As Variant, rw As Range
  3.    
  4.     Set sh = Sheets("工作表2")
  5.     With Sheets("工作表3")
  6.         For Each dat In Range(.Range("A2"), .Range("A2").End(xlDown))
  7.             Set rw = sh.Range("A2:A" & sh.Range("A2").End(xlDown).Row).Find(dat, , LookIn:=xlValues, LookAt:=xlWhole)
  8.             If Not rw Is Nothing Then
  9.                 sh.Rows(rw.Row).Interior.ColorIndex = 6
  10.             End If
  11.         Next
  12.     End With
  13. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2016-6-28 17:35 編輯

回復 3# chengchi1223
Range.Find 方法 (Excel)
    Find(dat, , LookIn:=xlValues, LookAt:=xlWhole) 等於
    Find(dat, LookIn:=xlValues, LookAt:=xlWhole)
    ---------------------------------------------------
運算式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
P.S.   運算式.Find(Required, 選用, 選用, 選用, 選用, 選用, 選用, 選用, 選用)
運算式 代表 Range 物件的變數。
如果只標示 (A2 = 2) : Find(dat, LookIn:=xlValues) 它會抓到  2 或者是 12
(部分吻合 LookAt:=xlPart), 所以才指名要 LookAt:=xlWhole ( 2 = 2)。

TOP

回復 4# chengchi1223
沒錯,解析得很好, rw 為 Range 引入值,
是故 sh.Rows(rw.Row) 的 rw.Row 即為
其目前所在位址 (rw.Address) 的列號 (行數)。
如此你便可以自行去延伸為兩個活頁簿應用了。

TOP

        靜思自在 : 能幹不幹,不如苦幹實幹。
返回列表 上一主題