Board logo

標題: [發問] 請問如何更改這一個range的數值 [打印本頁]

作者: joseph2003    時間: 2011-1-31 22:07     標題: 請問如何更改這一個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)一列的話
要如何改寫呢

[attach]4617[/attach]

還請高手幫幫忙
感激不盡
作者: Hsieh    時間: 2011-1-31 23:31

回復 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
複製代碼
附件中含有格式化條件作法
[attach]4622[/attach]
作者: joseph2003    時間: 2011-2-1 13:22

再問Hsieh老師
您的vba語法實際測試後抓取sheet1的數字是錯的
我不知道要修正哪個部份
可否再請您指點一下
謝謝
作者: Hsieh    時間: 2011-2-1 14:09

回復 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
複製代碼

作者: joseph2003    時間: 2011-2-1 15:30

感謝Hsieh老師

問題已依您的語法而解決




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