Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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中复制ctrl+A这样的范围_Vba_Excel - Fatal编程技术网

如何在VBA中复制ctrl+A这样的范围

如何在VBA中复制ctrl+A这样的范围,vba,excel,Vba,Excel,我在复制单元格范围时遇到问题。通常我用activecell方法制作。但在目前的情况下,这是行不通的。我的意思是代码没有选择整个单元格范围。如何将CTRL+excel快捷方式应用于VBA Sub MergeDifferentWorkbooksTogether() Dim wbk As Workbook Dim wbk1 As Workbook Dim Filename As String Dim Path As String Dim D As Date D = Date - 3 Workboo

我在复制单元格范围时遇到问题。通常我用activecell方法制作。但在目前的情况下,这是行不通的。我的意思是代码没有选择整个单元格范围。如何将CTRL+excel快捷方式应用于VBA

Sub MergeDifferentWorkbooksTogether()

Dim wbk As Workbook
Dim wbk1 As Workbook
Dim Filename As String
Dim Path As String
Dim D As Date
D = Date - 3

Workbooks.Add
ActiveWorkbook.SaveAs "C:\Users\xezer.suleymanov\Desktop\Summary & D"
Set wbk1 = Workbooks("Summary & D")

Path = "\\FILESRV\File Server\Hesabatliq\Umumi\Others\Branchs' TB\Branchs' TB as of  2018\" & D
Filename = Dir(Path & "\*.xlsx")

Do While Len(Filename) > 0
Set wbk = Workbooks.Open(Path & "\" & Filename)
wbk.Activate
Range("A6").Value = "Branch Name"
Range("B1").Copy
Range("B6").End(xlDown).Offset(0, -1).Activate
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).Select
Selection.PasteSpecial xlPasteAll
Application.CutCopyMode = False
Range("A6").Activate
Range(ActiveCell, ActiveCell.End(xlToRight).End(xlDown)).Copy
wbk1.Activate
Application.DisplayAlerts = False
wbk1.Sheets("Sheet1").Range("A1048576").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial xlPasteAll
wbk.Close True
Filename = Dir

Loop
End Sub

你可以试试这样的

Dim lr As Long, lc As Long
Dim rng As Range
lr = Cells(Rows.Count, 1).End(xlUp).Row
lc = Cells(6, Columns.Count).End(xlToLeft).Column
Set rng = Range("A6", Cells(lr, lc))
rng.Copy
另外,如果第5行为空,您也可以尝试

Range("A6").CurrentRegion.Copy

.Copy是用于范围的方法。你说的不工作是什么意思?发生了什么事?有错误信息吗?wbk1在哪里定义和设置?我编辑了完整的代码。事实上,VBA并没有向我显示任何错误。但是,当我在最后一步检查文件时,我看到代码没有复制全部单元格。Debug.Print RangeActiveCell,ActiveCell.endxltorRight.EndxlDown.Address在wbk1.Activate之前添加?我没有得到Debug。当我检查最后一个文件时,我发现代码没有完全复制。例如,从上到中复制了50行,但未复制另50行。这就是为什么我认为我必须使用ctrl+a选项。但我不知道将其应用于VBA macroxlToRight和EndxlDown将在第一个空白行或空白列处停止。范围内是否有空白行或空白列?看看