RXCEL VBA "溢出堆栈空间 "请高手看看改改
根据条件调用各SHEET的CommandButton1_Click。 有7个工作薄,每个工作薄有40个工作表,每个工作薄的最后一表宏接上另一个工作薄的第一个表的宏当运行到第5,或6个工作薄时,常提示错误:"溢出堆栈空间 "。 请看代码:(部分) Sub Msheet30() If Sheets("Sheet30").Range("T2") = "" Then Sheets("Sheet31").Select Application.Run "aa6FAA1.xls!Sheet31.CommandButton1_Click" Else Sheets("Sheet33").Select Application.Run "aa6FAA1.xls!Sheet33.CommandButton1_Click" End If End Sub Sub Msheet31() If Sheets("Sheet31").Range("T2") = "" Then Sheets("Sheet32").Select Application.Run "aa6FAA1.xls!Sheet32.CommandButton1_Click" Else Sheets("Sheet33").Select Application.Run "aa6FAA1.xls!Sheet33.CommandButton1_Click" End If End Sub Sub Msheet32() If Sheets("Sheet32").Range("T2") = "" Then Sheets("Sheet33").Select Application.Run "aa6FAA1.xls!Sheet33.CommandButton1_Click" Else Sheets("Sheet33").Select Application.Run "aa6FAA1.xls!Sheet33.CommandButton1_Click" End If End Sub Sub Msheet33() If Sheets("Sheet33").Range("T2") = "" Then Sheets("Sheet34").Select Application.Run "aa6FAA1.xls!Sheet34.CommandButton1_Click" Else Sheets("Sheet37").Select Application.Run "aa6FAA1.xls!Sheet37.CommandButton1_Click" End If End Sub Sub Msheet34() If Sheets("Sheet34").Range("T2") = "" Then Sheets("Sheet35").Select Application.Run "aa6FAA1.xls!Sheet35.CommandButton1_Click" Else Sheets("Sheet37").Select Application.Run "aa6FAA1.xls!Sheet37.CommandButton1_Click" End If End Sub Sub Msheet35() If Sheets("Sheet35").Range("T2") = "" Then Sheets("Sheet36").Select Application.Run "aa6FAA1.xls!Sheet36.CommandButton1_Click" Else Sheets("Sheet37").Select Application.Run "aa6FAA1.xls!Sheet37.CommandButton1_Click" End If End Sub Sub Msheet36() If Sheets("Sheet36").Range("T2") = "" Then Sheets("Sheet37").Select Application.Run "aa6FAA1.xls!Sheet37.CommandButton1_Click" Else Sheets("Sheet37").Select Application.Run "aa6FAA1.xls!Sheet37.CommandButton1_Click" End If End Sub Sub Msheet37() If Sheets("Sheet37").Range("T2") = "" Then Sheets("Sheet38").Select Application.Run "aa6FAA1.xls!Sheet38.CommandButton1_Click" Else Windows("aa6FAA2.xls").Activate Sheets("Sheet1").Select Application.Run "aa6FAA2.xls!Sheet1.CommandButton1_Click" End If End Sub Sub Msheet38() If Sheets("Sheet38").Range("T2") = "" Then Sheets("Sheet39").Select Application.Run "aa6FAA1.xls!Sheet39.CommandButton1_Click" Else Windows("aa6FAA2.xls").Activate Sheets("Sheet1").Select Application.Run "aa6FAA2.xls!Sheet1.CommandButton1_Click" End If End Sub Sub Msheet39() 除了工作薄和工作表名称不同,其他相同
Google一下“溢出堆栈空间”,会发现很多结果,主要原因归结一下可能是调用过多,内存爆了。 要解决这个问题,最好上传一个示例文件。看你写的代码,应该有优化和简化的空间。写代码时,尽量提高代码段的通用性和可重复利用性,像记流水账一样,很容易出问题,而且不便维护。
你的文档过多了,7个工作簿 每个 40 个工作表,很明显是内容太多了,导致堆栈溢出的。 你可以把这么多内容分为几个excel文件进行处理么?
答:Set rng = Sheet2.Range("A2:A" & Sheet2.[A65536].End(xlUp).Row + 1) arr = rng.Val...详情>>
问:怎样用Camtasia Studio v2.0.3来制作媒体
答:这个软件有使用向导的,你新建一个文件,然后照着他的说明一步一步的走下去,就知道怎么用了,这个软件太小了,网上跟本找不到教程的,如果你确实还是不会的话,找个懂电脑...详情>>