Vba 为什么会出现方法范围错误?
我需要将两个报告合并到一个中心模板中,由于某些原因,我的代码没有复制我第一个报告的最后一行和最后一列,有人可以编辑它以使其工作吗Vba 为什么会出现方法范围错误?,vba,excel,Vba,Excel,我需要将两个报告合并到一个中心模板中,由于某些原因,我的代码没有复制我第一个报告的最后一行和最后一列,有人可以编辑它以使其工作吗 Dim legal_wb As Workbook, cib_wb As Workbook, comp_wb As Workbook Set legal_wb = Workbooks.Open(Filename:=Legal) Set cib_wb = Workbooks.Open(Filename:=CIB) Set comp_wb = Workbooks.Open(
Dim legal_wb As Workbook, cib_wb As Workbook, comp_wb As Workbook
Set legal_wb = Workbooks.Open(Filename:=Legal)
Set cib_wb = Workbooks.Open(Filename:=CIB)
Set comp_wb = Workbooks.Open(Filename:=Comp_TCR)
Dim legal_ws As Worksheet, cib_ws As Worksheet, comp_ws As Worksheet
Set legal_ws = legal_wb.Sheets("ps")
Set cib_ws = cib_wb.Sheets("ps")
Set comp_ws = comp_wb.Sheets("Sheet1")
Dim lrow As Long, lcol As Long
Dim legal_rng As Range
lrow = legal_ws.Range("A" & Rows.Count).End(xlUp).Row
lcol = legal_ws.Cells(1, Columns.Count).End(xlToLeft).Column
Set legal_rng = legal_ws.Range(Cells(lrow, 2), Cells(lrow, lcol))
legal_rng.Copy
Set legal\rng
行出现错误
我想将第二行(标题被跳过)的
legal\u ws
范围复制到最后一行和最后一列,这样我就可以将其移到comp\u wb
中,但它没有选择任何内容。这可能是因为在括号内的单元格之前需要legal\u ws
因此:
Set legal\u rng=legal\u ws.Range(单元格(lrow,2),单元格(lrow,lcol))
为此:
Set legal\u rng=legal\u ws.Range(legal\u ws.Cells(lrow,2),legal\u ws.Cells(lrow,lcol))
@ashleedawg“方法,对象范围”error@ashleedawg你是什么意思?上面的代码中没有提到这一点吗?请参阅上的指南。您可以使用[F8]逐步检查代码,并在错误发生时确定变量lrow,lcol
的值。同样重要的是要包括一个适当的。在“”中有更多好的提示。在模块顶部添加Option Explicit
也是一个好主意,有助于确保正确声明变量。网站顶级用户提供的更多提示。@bloomfieldhero9219尝试在lrow
和lcol
中完全声明行。Count
-例如,wb.Worksheets(“myworksheet”).Rows.Count
等。在上给我一个标识符或括号内的表达式错误(
在第一个单元格之前
@bloomfieldhero9219抱歉,fat拨弄了一点,现在再试一次刚刚编辑好,它不再出错,但它不会选择范围并立即复制这些单元格all@bloomfieldhero9219因此,现在您需要确保lcol
和lrow
是正确的值,并且重新复制/粘贴是正确的格式在我看来@Kubie已经回答了您提出的问题。您没有发布任何代码来粘贴任何内容,因此我们对您在复制声明之外所做的事情一无所知。