不建议你这样 *** 作,正确做法应该是创建一份exel.xlsm文件,编写代码去控制其他文件,至于表格不同代码不同,那就多设置判断条件好了。
此外,就我了解,vba搞不定通过代码写代码吧。就算可以,按你要求实现不同表格不同代码还不如按上述第一步方便了。
解决办法倒也有:①创建一份已有需插入代码的excel.xlsm文件作为模板;②另创建一份excel1.xlsm文件用于执行,写入代买,目的是打开需插入代码的文件,将该文件内所有sheet复制到模板内,再将模板进行另存为即可,dir遍历循环以上步骤。
'自定义公式-按ALT+F11-插入模块-粘贴代码-将表格另存为启用宏的格式
Function 统计(a As Range, d As String)
lastrow = Range("a65536").End(xlUp).Row
Set b = Range("a2:a" &lastrow).Find(d)
If Range("b" &b.Row + 2) = "" Then
c = b.Row + 1
Else
c = Range("b" &b.Row + 1).End(xlDown).Row
End If
统计 = Application.Sum(Range("b" &b.Row + 1 &":b" &c))
End Function
大约有如下几种方法:1、vba自己加载法。将你的vba工程文件改名为acad.dvb,放在cad的安装目录下,vba初始化后自动加载。2、startup加载法。将你的vba文件放到cad的安装目下。cad安装目录下和suport目录下搜索acad.lsp文件,如果不存在,用windows记事本在安装目录下新建一个acad.lsp文件(如果已经存在,用记事本打开它),在该文件中添加如下内容:(defun S::STARTUP()(command "_VBALOAD" "myproj.dvb"))保存后退出,以后启动cad会自动加载,其中myproj.dvb是你的vba工程文件名。以上是autodesk推荐的两种方法,其实还有第三种方法。用记事本打开support目录下的acad200x.lsp,其中200x与acad的版本对应(如acad2000对应acad2000.lsp,acad2002对应acad2002.lsp等等),在文件的最后添加如下语句:欢迎分享,转载请注明来源:内存溢出
评论列表(0条)