Excel2010添加vba代码,但只能运行到黄色句,运行下一句就会跳错,请大神帮忙~这段代码从百

Excel2010添加vba代码,但只能运行到黄色句,运行下一句就会跳错,请大神帮忙~这段代码从百度经验里抄下来的,为什么别人能运行成功?在线等... Excel2010添加vba代码,但只能运行到黄色句,运行下一句就会跳错,请大神帮忙~这段代码从百度经验里抄下来的,为什么别人能运行成功?在线等 展开
 我来答
一年孤独58aa
2016-04-29 · TA获得超过1404个赞
知道小有建树答主
回答量:592
采纳率:92%
帮助的人:444万
展开全部
这段代码有两个方面可以优化:
一是:With Workbooks(1).ActiveSheet 为何不一开始就定义
dim totalSheet as workheet
set totalSheet= activesheet
...
with totalsheet
...
不过这个问题不是主要问题,最大的漏洞是将所有工作表合并到一张表中可能会存在溢出。即超过.xls格式的65536行。 这种情况其实在excel中非常容易出现, 有的excel使用的不规范或其他情况,导致第65536行有单元格格式被修改,这样的话即便有大范围的行数没有数据(通过肉眼来看是空的,但是使用usedrange判断依然被视为非空。 应该是这个问题导致了你的运行错误。很明显这段代码执行时,你用来测试的excel工作簿会对结果造成影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柔软的Bp
科技发烧友

2016-04-29 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:66%
帮助的人:9036万
展开全部
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName,
Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row +
1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("A1").Select
Application.ScreenUpdating = True
MsgBox "共合并了"
& Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation,
"提示"
End Sub
更多追问追答
追问
这个和我抄的一样呀,为什么我的不能运行?
追答
可以正常运行

新建一个工作表,命名后保存到和与合并的N个文件同一个文件夹里,运行代码。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9e98d5e
2016-04-29 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:65.7万
展开全部
把acivatesheet改为指定工作表。还不行发我邮箱yhchen@gc.omron.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式