Vba 尝试格式化区域中的单元格时出现运行时错误
我的vba代码有很多问题。我已经创建了一个子文件,它将在文件打开时执行。然而,我不断得到一个运行时错误,说我有一个应用程序定义或对象定义的问题。当With Cells13,dateFinder.Column块不伴有With Cells17,dateFinder.Column块时,此代码起作用 代码如下:Vba 尝试格式化区域中的单元格时出现运行时错误,vba,runtime-error,Vba,Runtime Error,我的vba代码有很多问题。我已经创建了一个子文件,它将在文件打开时执行。然而,我不断得到一个运行时错误,说我有一个应用程序定义或对象定义的问题。当With Cells13,dateFinder.Column块不伴有With Cells17,dateFinder.Column块时,此代码起作用 代码如下: Sub equityRaiseOpen() Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = Worksheets("PRESENTATI
Sub equityRaiseOpen()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("PRESENTATION")
Set ws2 = Worksheets(7)
ws2.Activate
Dim dateRange As Range
ws2.Unprotect
Dim dte As Date
'this block finds current quarter ending date
If Application.WorksheetFunction.RoundUp(Month(Now()) / 3, 0) = 1 Then
dte = DateValue("3/31/" & Year(Now()))
ElseIf Application.WorksheetFunction.RoundUp(Month(Now()) / 3, 0) = 2 Then
dte = DateValue("6/30/" & Year(Now()))
ElseIf Application.WorksheetFunction.RoundUp(Month(Now()) / 3, 0) = 3 Then
dte = DateValue("9/30/" & Year(Now()))
ElseIf Application.WorksheetFunction.RoundUp(Month(Now()) / 3, 0) = 4 Then
dte = DateValue("12/31/" & Year(Now()))
End If
Set dateRange = Range("FFO___AFFO_SUMMARY")
Dim iterator As Range
Dim colNum As Integer
'this block finds the column number for the current quarter ending date
For Each iterator In dateRange
If iterator = dte Then
colNum = iterator.Column
End If
Next
ws2.Range("B1") = dte
Dim dateFinder As Range
Set dateFinder = ws2.Range("B1")
Dim i As Integer
'Call putDates
i = 9
'ws2.Unprotect
Dim j As Integer
Set dateFinder = ws2.Range("B1")
For j = 1 To i
Cells(12, dateFinder.Column) = 0.4
'create data validiation for debt source
Debug.Print Cells(13, dateFinder.Column).Address
With Cells(13, dateFinder.Column)
.Interior.Color = RGB(255, 255, 255)
.Locked = False
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DebtList"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
.Value = "Revolver"
End With
With Cells(17, dateFinder.Column)
.Interior.Color = RGB(255, 255, 255)
.Locked = False
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="ATM,Common, Preferred"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
.Value = "ATM"
End With
Set dateFinder = dateFinder.Offset(0, 2)
Next j
'ws2.Protect
End Sub
让我们弄清楚-当您按debug时,代码中的哪一行标记了错误?下面的一行:使用Cells17,dateFinder.Column,第二行使用Block。您确定此范围不受保护吗?您的代码对我来说运行正常…我在代码开始时尝试取消对整个工作簿的保护,但没有成功。根据你的建议,我在几个不同的地方解除了对床单的保护,它最终起了作用,尽管我不知道为什么。非常感谢你!