Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何在范围函数上使用LastRow?_Vba_Excel - Fatal编程技术网

Vba 如何在范围函数上使用LastRow?

Vba 如何在范围函数上使用LastRow?,vba,excel,Vba,Excel,所以我想从工作表1-工作簿a到工作表1-工作簿B的特定单元格区域复制值 我想复制源工作表中的所有内容:更具体地说,每个单元格上都有值 在目标工作表上,为源工作表上的值指定了单元格 这是我的代码到目前为止很糟糕,但我是VBA的noob!: Sub CopyRangeofCells() Dim x As Workbook Dim y As Workbook Set x = Workbooks.Open("C:\test\template.xlsx") Set y = Workbooks.Ope

所以我想从工作表1-工作簿a到工作表1-工作簿B的特定单元格区域复制值

我想复制源工作表中的所有内容:更具体地说,每个单元格上都有值

在目标工作表上,为源工作表上的值指定了单元格

这是我的代码到目前为止很糟糕,但我是VBA的noob!:

Sub CopyRangeofCells()
Dim x As Workbook
Dim y As Workbook



Set x = Workbooks.Open("C:\test\template.xlsx")
Set y = Workbooks.Open("C:\test\finalfile.xlsx")


x.Sheets("RDBMergeSheet").Range("A1").Copy


y.Sheets("CW Fast").Range("A1").PasteSpecial

'Close x:
x.Close

End Sub
在我的范围内,我想做一些像RangeA1:LastRow之类的事情。我该怎么做?我可以创建一个lastrow变量,然后执行A1:MyLastRow变量吗

希望你能帮忙!VBA让我很困惑,给我一整天的Java吧P

类似这样的东西:

Sub CopyRangeofCells()
Dim x As Workbook
Dim y As Workbook
Dim LastRow as Long
Dim LastRowToCopy as Long

Set x = Workbooks.Open("C:\test\template.xlsx")
Set y = Workbooks.Open("C:\test\finalfile.xlsx")

LastRowToCopy = x.Sheets("RDBMergeSheet").Cells(x.Sheets("RDBMergeSheet").Rows.Count, "A").End(xlUp).Row
x.Sheets("RDBMergeSheet").Range("A1:A" & LastRowToCopy).Copy
'copy from A1 to lastrow
LastRow = y.Sheets("CW Fast").Cells(y.Sheets("CW Fast").Rows.Count, "A").End(xlUp).Row + 1 'find the last row 
y.Sheets("CW Fast").Range("A" & LastRow).PasteSpecial xlPasteValues
'paste on the lastrow of destination + 1 (so next empty row)
x.Close
End Sub

让我们一步一步来:

Sub CopyRangeofCells()

Dim x As Workbook
Dim y As Workbook
Dim LastRow As Long

Set x = Workbooks.Open("C:\test\template.xlsx")
Set y = Workbooks.Open("C:\test\finalfile.xlsx")

With x.Sheets("RDBMergeSheet")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' get last row with data in column "A"

    .Range("A1:A" & LastRow).Copy
End With

y.Sheets("CW Fast").Range("A1").PasteSpecial xlPasteValues

'Close x:
x.Close

End Sub

然后使用工作表上的最后一个单元格。endxlUp.row通过观看以下视频开始:。这不是在我的目标而不是源上查找最后一行吗?我太糊涂了。我更新了我的答案,找到了要复制的区域的最后一行,然后找到了要粘贴的目标区域的最后一行……该死,它看起来很完美,但在找到目标区域的最后一行时,它给了我下标超出范围的错误:我将继续尝试和错误,看看为什么会发生这种情况,谢谢!也许如果你只是想在目的地的A1上粘贴,你不需要包括最后一行?但是,如果要获得超出范围的下标,您必须在此处执行其他操作,可能需要再次检查目标的工作表名称?听起来不错,但我得到了一个下标超出范围错误,它会在调试器上突出显示这一行:y.SheetsCW Fast.RangeA1.PasteSpecialstill在粘贴行上显示相同的错误。它怎么会超出范围?我能想到的可能与此冲突的两件事是,我在该列上有过滤器,以及数据验证。这能解释这个错误吗?@MiguelSáLemos Filters?在哪个工作表上?另外,您确定您的CW Fast在y工作簿上的拼写与此完全相同吗?在目标工作表上,标题具有筛选器。是的,工作表名为CW Fast