Excel 我正在尝试将第一行的格式复制到我的范围内的其余行
我创建了2个函数,但都给出了运行时错误“1004”:应用程序定义的或对象定义的错误。你能告诉我这里的错误是什么吗Excel 我正在尝试将第一行的格式复制到我的范围内的其余行,excel,vba,Excel,Vba,我创建了2个函数,但都给出了运行时错误“1004”:应用程序定义的或对象定义的错误。你能告诉我这里的错误是什么吗 Sub test() Dim RowCount, ColumnCount As Integer Dim sRangeSt, sRangeEn, tRangeSt, tRangeEn As String Dim tmpRange As Range RowCount = Range("main").Rows.Count Colum
Sub test()
Dim RowCount, ColumnCount As Integer
Dim sRangeSt, sRangeEn, tRangeSt, tRangeEn As String
Dim tmpRange As Range
RowCount = Range("main").Rows.Count
ColumnCount = Range("main").Columns.Count
'prepare range start and end cell-addresses
sRangeSt = Range("main").End(xlToLeft).Offset(1, 0).Address
sRangeEn = Range("main").End(xlToLeft).Offset(1, 0).End(xlToRight).Address
tRangeSt = Range("main").End(xlToLeft).Offset(2, 0).Address
tRangeEn = Range("main").End(xlToLeft).Offset(RowCount - 1, ColumnCount - 1).Address
'Perform style copy
Range(sRangeSt & ":" & sRangeEn).Copy
'Worksheets("Report").Select
Worksheets("Report").Range(tRangeSt & ":" & tRangeEn).PasteSpecial xlPasteFormats
End Sub
Sub test2()
Dim sRangeSt, sRangeEn, tRangeSt, tRangeEn As String
sRangeSt = Range("main").End(xlToLeft).Offset(1, 0).Address
sRangeEn = Range("main").End(xlToLeft).Offset(1, 0).End(xlToRight).Address
'Perform style copy
Range(sRangeSt & ":" & sRangeEn).Copy
For Each Row In Range("main").Rows
Range(Row.Address).PasteSpecial xmlPasteFormts
Next Row
End Sub
第一个块在最后一行给出错误。我尝试减少目标行的行数,但在excel范围4096行时运行良好,但在行数较大的范围内运行失败,出现上述错误。您收到该错误,因为您的范围未完全限定。仅通过在
中用End With
将代码括起来将无法限定范围。在每个范围前添加一个
(点)。比如说
With Sheets("Report")
RowCount = Range("main").Rows.Count
ColumnCount = Range("main").Columns.Count
变成
With Sheets("Report")
RowCount = .Range("main").Rows.Count
ColumnCount = .Range("main").Columns.Count
同样,对于其他人谢谢你的回复-悉达塔。实际上,我这里没有使用'With-EndWith'这个块。as“main”是工作簿范围的范围。我们可以忽略这一点。。我l更新我的代码。错误发生在最后一行。。。它可以粘贴到4096行,但在下一行中会给出“应用程序定义或对象定义错误”。存储在
main
中的地址是什么?@L42-address是“=Report!”$A$14:$P$12458',范围是“工作簿”。我尝试了你的代码,它正在工作。也许你应该改进你的变量声明,这样你就能得到你想要的结果。请参阅以获取一些指导。