vba运行时错误1004 应用程序定义或对象定义错误
Sub复制数值()Dimnew_BookAsWorkbookSetnew_Book=Workbooks.AddThisWorkbook.Sheets(1).Copybef...
Sub 复制数值()
Dim new_Book As Workbook
Set new_Book = Workbooks.Add
ThisWorkbook.Sheets(1).Copy before:=new_Book.Sheets(1)
new_Book.Activate
Sheets(1).Range("A1:H").End(xlUp).Select '该行调试出错,我只希望复制出A1:H列的最后一行非空行
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
new_Book.SaveAs "D:\" & Mid(Sheets("1").Range("A2"), 6, 23) & ".xls"
End Sub
下图:我希望只复制出A1:H21行的内容 展开
Dim new_Book As Workbook
Set new_Book = Workbooks.Add
ThisWorkbook.Sheets(1).Copy before:=new_Book.Sheets(1)
new_Book.Activate
Sheets(1).Range("A1:H").End(xlUp).Select '该行调试出错,我只希望复制出A1:H列的最后一行非空行
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
new_Book.SaveAs "D:\" & Mid(Sheets("1").Range("A2"), 6, 23) & ".xls"
End Sub
下图:我希望只复制出A1:H21行的内容 展开
8个回答
展开全部
估计是你代码前面有强制声明语句:Option Explicit,而你的S1和s4并没有声明,所以出错。删除那句或将变量全部声明即可。
另外从代码看出了一个重要问题,在While (s1.Cells(r1, 1) <> "")循环体内并没有改变r1的值,所以 s1.Cells(r1, 1) 是永远不会变的,如果满足条件进入循环就成了死循环。另外While (s1.Cells(r1, 1) <> "")这句的外层括号是多余的
另外从代码看出了一个重要问题,在While (s1.Cells(r1, 1) <> "")循环体内并没有改变r1的值,所以 s1.Cells(r1, 1) 是永远不会变的,如果满足条件进入循环就成了死循环。另外While (s1.Cells(r1, 1) <> "")这句的外层括号是多余的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sheets(1).Range("A1:H").End(xlUp).Select很明显,应该改为 Sheets(1).Range("A1:H1").End(xlUp).Select,你就缺了一个1,就是Range("A1:H1"),呵呵。采纳吧。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试改改这里:
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
在Sheets.Count前面加一个wb.
改后如下:
For G = 1 To wb.Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sheets(1).Range("A1:H").End(xlUp).Select 改成 Sheets(1).Range("A1:H1").End(xlUp).Select
--注意写全
--注意写全
追问
非常感谢你的回答,都很好,可只能采纳一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |