如何在VBA中复制ctrl + A等范围

时间:2018-04-23 06:24:01

标签: excel vba excel-vba

我遇到了复制细胞范围的问题。通常我习惯用activecell方法制作它。但在目前的情况下,它不起作用。我的意思是代码不会选择整个范围的单元格。如何将 CTRL + A 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

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情......

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

此外,如果row5为空,您也可以尝试...

Range("A6").CurrentRegion.Copy