复印及;使用可变图纸名称粘贴对象需要vba
我有一份有两张数据的报告。一个被称为2018年7月26日,另一个则全部待定。当我打开报告时,只有2018年7月26日可见,我希望使用vba代码将2018年7月26日的数据复制并粘贴到所有待定数据中,从A列到N列 每次运行此报告时,我都需要将工作表名称更改为我正在处理的日期。因此,如果我明天继续工作,我需要将工作表名称更改为7.27.2018,并将数据粘贴到所有待定选项卡中。本质上,我使用2018年7月26日表格中的新数据保留所有待处理记录 现在,我不知道如何将工作表名称设置为一个变量,以便复制和粘贴结果,因此对于复印及;使用可变图纸名称粘贴对象需要vba,vba,excel,Vba,Excel,我有一份有两张数据的报告。一个被称为2018年7月26日,另一个则全部待定。当我打开报告时,只有2018年7月26日可见,我希望使用vba代码将2018年7月26日的数据复制并粘贴到所有待定数据中,从A列到N列 每次运行此报告时,我都需要将工作表名称更改为我正在处理的日期。因此,如果我明天继续工作,我需要将工作表名称更改为7.27.2018,并将数据粘贴到所有待定选项卡中。本质上,我使用2018年7月26日表格中的新数据保留所有待处理记录 现在,我不知道如何将工作表名称设置为一个变量,以便复制和
ws3
,我得到了一个objectrequired
错误。有没有办法绕过它
Sub Main()
ActiveSheet.Name = Format(Date, "M.DD.YYYY")
Worksheets("All Pending").Visible = xlSheetVisible
Dim ws3, ws4 As Worksheet
Dim LR3, LR4 As Long
Set ws3 = Worksheet.Name(Date)
Set ws4 = Worksheets("All Pending")
LR3 = ws3.Cells(Rows.Count, "A").End(xlUp).Row
LR4 = ws4.Cells(Rows.Count, "A").End(xlUp).Row
ws3.Range("A2:N" & LR3).Copy
ws4.Range("A" & LR4 + 1).PasteSpecial Paste:=xlPasteValues
End Sub
工作表。名称(日期)
不是您要查找的语法,因为:
工作表
集合,就像下一行一样-…=工作表(“所有待定”)
Date
格式化为“M.DD.YYY”,因此,如果您想通过其名称引用工作表,则不能仅使用Date
。您也不会使用.Name
——下一行再次向您展示了如何通过名称引用工作表——在本例中是工作表(格式(日期,“M.DD.YYYY”)
设置ws3=ActiveSheet
,因为您也在使用ActiveSheet
重命名有问题的工作表
请注意,对于变量声明,Dim ws3,ws4作为工作表
将ws3
声明为变量
-您应该将Dim ws3作为工作表,ws4作为工作表
。下一行也是如此
下面是对原始代码的修订:
Sub Main()
Dim ws3 As Worksheet, ws4 As Worksheet
Dim LR3 As Long, LR4 As Long
Set ws3 = ActiveSheet
Set ws4 = Worksheets("All Pending")
ws3.Name = Format(Date, "M.DD.YYYY")
ws4.Visible = xlSheetVisible ' Not really necessary, as you mentioned
LR3 = ws3.Cells(Rows.Count, "A").End(xlUp).Row
LR4 = ws4.Cells(Rows.Count, "A").End(xlUp).Row
ws3.Range("A2:N" & LR3).Copy
ws4.Range("A" & LR4 + 1).PasteSpecial Paste:=xlPasteValues
End Sub
在开始时,
设置ws3=ActiveWorksheet
?请注意,Dim ws3,ws4 as Worksheet
将ws3
声明为Variant
-您需要执行Dim ws3 as Worksheet,ws4 as Worksheet
。下一行也一样。我想我不需要取消隐藏所有挂起的工作表来进行复制和粘贴,所以我总是将工作表设置为活动工作表,然后在设置ws3
为activeworksheet
时这样做。我将添加更多解释作为答案。好的。再次感谢您。谢谢您的详细解释。这有助于我更好地理解代码。