返回列表 上一主題 發帖

[發問] 請問如何更改這一個range的數值

[發問] 請問如何更改這一個range的數值

本帖最後由 joseph2003 於 2011-1-31 22:08 編輯

Sub Find_Num()
For Each Found_Num In Worksheets(2).Range("A1:F3")
    For Each Data In Worksheets(1).Range("A1:AI20")
        If Data.Value = Found_Num Then
            Data.Interior.ColorIndex = 3
        End If
    Next Data
Next Found_Num
End Sub
--------------------------------------------------------------------------------------------------
如果要改成
Worksheets(2).Range("A1:F1")对应Worksheets(1).Range("A1:AI5")
Worksheets(2).Range("A2:F2")对应Worksheets(1).Range("A6:AI10")
Worksheets(2).Range("A3:F3")对应Worksheets(1).Range("A11:AI15")
.........
.........
以此類推

也就是說sheets(2)每隔五列只抽取sheet(1)一列的話
如何改寫呢

Book1.rar (7.72 KB)

還請高手幫幫忙
感激不盡

回復 1# joseph2003

這種問題應該使用格式化條件即可達成
若一定要使用VBA
  1. Sub Find_Num()
  2. For Each a In Range("A:AI").SpecialCells(xlCellTypeConstants)
  3.   r = Int((a.Row - 1) / 5) + 1
  4.   Set c = Sheets(2).Rows(r).Find(a)
  5.   If Not c Is Nothing Then a.Interior.ColorIndex = 3 Else a.Interior.ColorIndex = 0
  6. Next
  7. End Sub
複製代碼
附件中含有格式化條件作法
findcell.rar (10.12 KB)
學海無涯_不恥下問

TOP

再問Hsieh老師
您的vba語法實際測試後抓取sheet1的數字是錯的
我不知道要修正哪個部份
可否再請您指點一下
謝謝

TOP

回復 3# joseph2003
  1. Sub Find_Num()
  2. For Each a In Range("A:AI").SpecialCells(xlCellTypeConstants)
  3.   r = Int((a.Row - 1) / 5) + 1
  4.   Set c = Sheets(2).Rows(r).Find(a, lookat:=xlWhole)
  5.   If Not c Is Nothing Then a.Interior.ColorIndex = 3 Else a.Interior.ColorIndex = -4142
  6. Next
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

感謝Hsieh老師

問題已依您的語法而解決

TOP

        靜思自在 : 人要自愛,才能愛普天下的人。
返回列表 上一主題