Excel 运行时错误“1004”:应用程序定义的错误或对象定义的错误
我正在尝试从用户输入的选定范围将数据从一张图纸复制并粘贴到下一张图纸。TxtDateStart取开始日期,TxtDateEnd取结束日期。然后,它会将日期范围内的数据复制并粘贴到新的工作表上。 当我在表单中运行代码时,它可以工作,但我宁愿让表单调用模块。这就是我得到运行时错误的地方。我不是VBA方面的专家,非常感谢您的帮助。 数据所在的工作表称为Unit2Data,我要粘贴数据的工作表是Graphing sheet 错误发生在这一行Excel 运行时错误“1004”:应用程序定义的错误或对象定义的错误,excel,vba,Excel,Vba,我正在尝试从用户输入的选定范围将数据从一张图纸复制并粘贴到下一张图纸。TxtDateStart取开始日期,TxtDateEnd取结束日期。然后,它会将日期范围内的数据复制并粘贴到新的工作表上。 当我在表单中运行代码时,它可以工作,但我宁愿让表单调用模块。这就是我得到运行时错误的地方。我不是VBA方面的专家,非常感谢您的帮助。 数据所在的工作表称为Unit2Data,我要粘贴数据的工作表是Graphing sheet 错误发生在这一行 Sheets("Unit2Data").Range(Cells
Sheets("Unit2Data").Range(Cells(i, 1), Cells(i, 73)).Select
首先你应该。几乎总是有更好的方法来实现您使用Select的目的
在您的情况下,仅针对提出的特定错误/问题,删除导致错误的行和下一行选择。复制并替换为:
With Sheets("Unit2Data")
.Range(.Cells(i, 1), .Cells(i, 73)).Copy
End With
重写整个代码以避免使用Select:
子单元2数据
暗L长,i长,x长,y长,erow长
x=TxtDateStart
y=TxtDateEnd
带SheetsUnit2Data
lrow=.RangeA和.Rows.Count.EndxlUp.Row
对于i=4至lrow
如果.Cellsi,1*1>=x*1,则
如果.Cellsi,1*1,则需要指定使用哪个工作表。如果Cellsi,1*1>=x*1,那么谁知道该行运行时哪个工作表处于活动状态?您也可以避免使用。激活或。事实上,复制粘贴可以在一行中完成,从而防止Excel将数据存储到剪贴板上。大多数情况下,可以一起避免复制粘贴。也就是说,你在哪一行上得到错误?我添加了我得到错误的那一行。我在另一张名为“表格”的纸上打开了表格。当按下按钮时,窗体将打开。当按下表单上的按钮时,它会运行模块。谢谢,我试过了,它确实解决了错误。但是,它只会在第一个日期打印行,而不会在第二个日期打印行second@flamingbird123,我已经重写了你的全部代码,应该可以了。
Date Data
01/01/2019 2
02/02/2019 3
With Sheets("Unit2Data")
.Range(.Cells(i, 1), .Cells(i, 73)).Copy
End With