[英]VBA Run-time error '1004': Selection.Interior.Pattern
我有以下代碼,應根據其中的一個值簡單地更改命名范圍的修飾。 如果其為空,則變為紅色;否則,應清除所有裝飾。 我查看了其他類似錯誤的問題,似乎無法解決我的問題。 我有以下代碼:
For Each section In mandatoryFields
MsgBox (ThisWorkbook.Worksheets("Worksheet").Range(section).Value)
If Trim(ThisWorkbook.Worksheets("Worksheet").Range(section).Value) = "" Then
ThisWorkbook.Worksheets("Worksheet").Range(section).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
ThisWorkbook.Worksheets("Worksheet").Range(section).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next section
我已逐步完成代碼,並且在運行時錯誤被觸發
.Pattern = xlNone
要么
.Pattern = xlSolid
線。 有什么建議么?
我也嘗試過
Worksheets("Worksheet").Activate
Range(section).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
我有以下代碼是在單擊按鈕時觸發的。
Dim wb As Workbook
Set wb = Application.Workbooks("C New Hire")
wb.Worksheets("Worksheet").Range("nameRange").Value = "r"
我第二次單擊該行上的按鈕時,將發生運行時錯誤
wb.Worksheets("Worksheet").Range("nameRange").Value = "r"
代碼的着色部分是正確的,因為它可以正常工作:
Sub luxation()
Range("A1:A2").Clear
Range("A1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A2").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
然而:
選擇范圍之前,必須激活“包含”工作表。
否則,請遵循David的建議。
編輯#1:
根據您更新的代碼,緊接在:
Range(section).Select
插入:
MsgBox Selection.Address(0,0)
這將為問題發生的位置提供一些啟示。
這個問題的答案是在執行我的內部代碼以保護代碼中的工作表的代碼之后觸發了一個Worksheet_Change函數。 這意味着我不能對任何對象執行任何程序,例如更改其顏色。 因此,在執行這些步驟之前,我必須取消保護工作表的保護。
最后簡單修復,但很容易錯過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.