我的目标是将行从Sheet(“ VBA”)复制到Sheet(“ COLUMBIA-TAKEDOWN”)中的特定位置。该位置是包含“ P R O S P E C T S”的单元格的Offset(1,1)。我的代码的第一部分工作得很好,但是我的问题开始于选择和编辑一行[Prospect.Offset(13,-1).Select]。似乎忽略了这一行代码,因为后面的格式化行没有发生。它不会抛出错误消息。
我了解我错误地选择了行,因此无法进行格式更改,但是我不知道如何解决此问题。
Application.ScreenUpdating = False
Dim Prospect As Range
Set Prospect = Sheets("COLUMBIA-TAKEDOWN").Cells.Find(what:="P R O S P E C T S")
Sheets("VBA").Visible = True
Sheets("VBA").Rows("13:25").Copy
Prospect.Offset(1, -1).Insert shift:=xlDown
Prospect.Offset(13, -1).Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Prospects.Offset(1, -1).Select
Sheets("VBA").Visible = False
End Sub
答案 0 :(得分:1)
问题是您尝试在rows
范围内insert cell
...它们的大小不相同,因此会出现错误。
尝试一下...可能需要更多思考,但是我只是重用了您的代码。
Sub test()
Application.ScreenUpdating = False
Dim wb As Workbook: Set wb = ThisWorkbook
Dim sht As Worksheet: Set sht = wb.Sheets("Sheet1")
Dim ProspectRow As Long: ProspectRow = sht.Cells.Find(what:="P R O S P E C T S").Row + 1
wb.Sheets("VBA").Rows("13:25").Copy
sht.Rows(ProspectRow).Insert Shift:=xlDown
With sht.Rows(ProspectRow + 13).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Application.ScreenUpdating = True
End Sub
编辑:为评论者修改了代码...
EDIT2:添加了格式...