2015-06-23 17 views
1

Curretly我試圖樣式的單元格範圍,如果滿足某些條件。我能夠成功地將樣式應用於一個單元格,但迄今爲止未能將其應用於一個範圍。這是我知道的作品:使用範圍(Cells()Cells())。風格結果在應用程序定義或用戶定義的錯誤

ElseIf OneA/OneC > 0.8 And OneA/OneC <= 1 Then 
     ActiveWorkbook.Sheets(StartYear & " " & StartQ & " - " & EndYear & " " & EndQ).Cells(Employee, StartCol).Style = "60% - Accent2" 

這上面的代碼風格細胞(員工,StartCol)到60% - Accent2。但是,當我更改此代碼以嘗試將樣式應用於範圍時,我得到「應用程序定義的錯誤或用戶定義的錯誤」。這是我試圖將代碼更改爲:

ElseIf OneA/OneC > 0.8 And OneA/OneC <= 1 Then 
        ActiveWorkbook.Sheets(StartYear & " " & StartQ & " - " & EndYear & " " & EndQ).Range(Cells(Employee, StartCol), Cells(Employee + 49, StartCol)).Style = "60% - Accent2" 

我不知道我在做什麼錯在這裏。我認爲這可能是一個語法錯誤,但我沒有足夠的經驗足以讓vba知道它到底發生了什麼錯誤。任何幫助將不勝感激。謝謝!

回答

3

您在第二個片段中使用了全局對象Cells,但明確引用了第一個片段中工作表的.Cells屬性。第二個實際工作,但只有當活動工作表匹配您從ActiveWorkbook.Sheets()獲得的那個。抓住至目標工作的參考,然後用.Cells屬性,而不是全球的:

ElseIf OneA/OneC > 0.8 And OneA/OneC <= 1 Then 
    Dim target As Worksheet 
    Set target = ActiveWorkbook.Sheets(StartYear & " " & StartQ & " - " & EndYear & " " & EndQ) 
    With target 
     .Range(.Cells(Employee, StartCol), .Cells(Employee + 49, StartCol)).Style = "60% - Accent2" 
    End With 
+0

這是正確的,我不知道我在想什麼+1 – chancea

+0

完美工作,謝謝! –

相關問題