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已经回答了您提出的问题。您没有发布任何代码来粘贴任何内容,因此我们对您在复制声明之外所做的事情一无所知。