excel - 如何更改宏功能
问题描述
我得到了一个包含对函数 f(x,y) 的引用的 excel 文件。该文件不包含宏。我编写了一个具有不同功能的宏并将其保存为 .xlsm 扩展名。当我运行新宏时,出现运行时错误“28”超出堆栈空间错误。
这是什么意思,我该如何纠正?有人告诉我,我不需要 Visual Basic 来执行此操作。这是一个特殊的附加包吗?谢谢你。
Sub xplusy()
'
' xplusy Macro
' Function f(x,y) f=x+y End Function
'
'
Application.Run "'5_3 Runge-Kutta.xlsm'!xplusy"
Sheets("RK4").Select
Range("C9").Select
Application.Run "'5_3 Runge-Kutta.xlsm'!xplusy"
Range("E8").Select
Application.CommandBars("Help").Visible = False
Application.Goto Reference:="xplusy"
End Sub
解决方案
让我们将您的 Sub 削减到最基本的级别:
Sub VeryBasic()
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
End Sub
现在,看看该代码如何调用自身?如果我们将其扩展 1 级,我们会得到:
Sub VeryBasic()
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
Application.GoTo "Location"
End Sub
将其扩展 2 个级别:
Sub VeryBasic()
'Application.Run "VeryBasic"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
Application.GoTo "Location"
'Application.Run "VeryBasic"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
'Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.Run "VeryBasic"
Application.GoTo "Location"
Application.GoTo "Location"
Application.GoTo "Location"
End Sub
希望你能看到这段代码会变得越来越大,除了将另一个自身的副本添加到“堆栈”来运行之外,实际上没有做任何事情。最终,您的堆栈空间不足(或者您的计算机内存不足),您会收到堆栈溢出错误。
推荐阅读
- flutter - 从 IBM Watson 下载 CoreML 文件时出错
- excel - 使用列表中的名称创建新工作表
- rabbitmq - 使用 request-reply 和 pub-sub 进行微服务通信
- python - 针对工作日字符串使用 Pandas .corr
- python - 为什么坐标只返回“N/A”?尝试通过从 Zillow 抓取来比较要出租的社区
- swift - Swift 范围界定问题,在 alamofire 请求函数中添加变量,但变量在函数之外时似乎丢失了
- python - 如何在 tkinter 中替换背景图像?
- linux - TensorFlow 库未编译为使用 SSE4.1、SSE4.2、AVX、AVX2 指令来加速 CPU 计算
- subnet - EC2:“启动失败您请求的实例类型 (t2.micro) 在您请求的可用区 (ap-south-1c) 中不受支持”
- amazon-web-services - 与 VS Code Notebooks 配合使用的 Python 和 Spark 版本