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 选择并复制一块单元格_Vba - Fatal编程技术网

Vba 选择并复制一块单元格

Vba 选择并复制一块单元格,vba,Vba,我使用以下VBA选择一块单元格,然后复制它。但是,结果显示Excel仅复制该块中最后一个单元格。为什么?如何修复?谢谢 Sheets(1).Select Range("B8").Activate ActiveCell.End(xlDown).End(xlToRight).Select Selection.Copy 更新: 我想出了另一种解决方法(可能不是很聪明): 使用以下命令: Dim ws As Worksheet Dim nr_rows As Long Set ws = ThisWor

我使用以下VBA选择一块单元格,然后复制它。但是,结果显示Excel仅复制该块中最后一个单元格。为什么?如何修复?谢谢

Sheets(1).Select
Range("B8").Activate
ActiveCell.End(xlDown).End(xlToRight).Select
Selection.Copy
更新:

我想出了另一种解决方法(可能不是很聪明):

使用以下命令:

Dim ws As Worksheet
Dim nr_rows As Long

Set ws = ThisWorkbook.Worksheets("1")

With ws
   nr_rows = ws.Range("B1048576").End(xlUp).Row
   ws.Range("B8:B" & nr_rows).Copy
End With
如果要使用
选择

Sheets("1").Select
Range("B8").Activate
Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
Selection.Copy
或在一行中:

Sheets("1").Range(Cells(8, 2), Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
使用以下命令:

Dim ws As Worksheet
Dim nr_rows As Long

Set ws = ThisWorkbook.Worksheets("1")

With ws
   nr_rows = ws.Range("B1048576").End(xlUp).Row
   ws.Range("B8:B" & nr_rows).Copy
End With
如果要使用
选择

Sheets("1").Select
Range("B8").Activate
Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
Selection.Copy
或在一行中:

Sheets("1").Range(Cells(8, 2), Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select

请你再解释一下好吗?比如我哪里出错了,为什么你的工作,等等,因为你没有定义你想要的属性范围。我用正确的选择编辑了这篇文章。您的代码只选择第一个单元格,然后选择最后一个单元格,没有设置范围,因为您没有在查询中定义范围。请您添加一些解释,好吗?比如我哪里出错了,为什么你的工作,等等,因为你没有定义你想要的属性范围。我用正确的选择编辑了这篇文章。您的代码只选择第一个单元格,然后选择最后一个单元格,因为您没有在查询中定义范围,所以没有创建范围。如果您的单元格块与任何其他单元格分开,您可以使用:
range(“B8”).CurrentRegion.Copy
@LaTeXFan如果我的答案对您有帮助,请接受它。如果您的单元格块与任何其他单元格分开,您可以使用:
Range(“B8”).CurrentRegion.Copy
@LaTeXFan如果我的答案对您有帮助,请接受它。