Board logo

標題: [發問] 清除範圍內的顏色 [打印本頁]

作者: missbb    時間: 2015-8-23 19:35     標題: 清除範圍內的顏色

想要清除範圍內的顏色 (但是要保留原有的格式化設定), 用下程式碼卻不行, 請指教是那兒錯了?
  1. Sub test()
  2. Dim i As Integer
  3.   
  4.    
  5. lastrow = Range("a" & Rows.Count).End(xlUp).Row
  6.    
  7. For i = 7 To Sheets.Count
  8.    With Sheets(i).Range("F4:aj" & lastrow)
  9.    .ClearContents
  10.    .Interior.ColorIndex = xlNone
  11.    
  12.     End With
  13.    
  14.     Next i
  15.    
  16. End Sub
複製代碼

作者: lcctno    時間: 2015-8-23 20:18

我是使用錄製的方法得到的工程碼
.Interior.ColorIndex = xlNone 改為以下 或許可行
Selection.FormatConditions.Delete
作者: missbb    時間: 2015-8-23 20:25

回復 2# lcctno

已試但不支援此方法, 附上檔案.
  1. [attach]21780[/attach]
複製代碼
第2個問題是想在不同工作表, 清除F4至AJ 最後一行的內容及顏色, 以D17 開工人數 為標記, 因很工作表人數不同, 只寫了下列就不懂了???:'(
  1. Sub 清除F4至AJLR()

  2. '想清除F4至AJ 最後一行的內容及顏色, 以D17 開工人數 為標記, 因很工作表人數不同

  3. Dim r As Variant
  4. Dim c As Variant
  5. Dim cl As Variant

  6. Worksheets("taiwan").Activate

  7. Set c = Range("D4:D20").Find("開工人數")
  8. If Not c Is Nothing Then
  9.    c.Select
  10.    r = Selection.Row  '返回行
  11.    cl = Selection.Column '返回列
  12.    
  13.    End If

  14. End Sub
複製代碼

作者: lcctno    時間: 2015-8-23 20:48

由於我是新手 很多的vba我都是使用錄製巨集的方式來使用 然後想辦法減去不需要的程式碼 雖然上不了檯面 但那是初學者的我 最快的方法就只有這招了  但蠻好用的 您可以自己試試用錄製巨集的方式拆招
作者: ikboy    時間: 2015-8-24 06:31

Sub test()
Dim i As Integer
Dim r As Variant
Dim c As Variant
Dim cl As Variant
zr = Rows.Count
For i = 7 To Sheets.Count
    With Sheets(i)
        lastrow = .Range("aj" & zr).End(3).Row
        .Range("F4:aj" & lastrow).Clear  '更直接地刪除內容及格式
        Rem .ClearContents
        Rem .Interior.ColorIndex = xlNone
    End With
Next i
Worksheets("taiwan").Activate
Set c = Range("D420").Find("開工人數")
If Not c Is Nothing Then
   c.Select
   r = c.Row  '返回行
   cl = c.Column '返回列
End Sub
作者: missbb    時間: 2015-8-24 20:45

回復 5# ikboy

THANKS




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