vba类模块应该放在哪里 vba如何自动引用dll文件?

[更新]
·
·
分类:互联网
2533 阅读

vba类模块应该放在哪里

vba如何自动引用dll文件?

vba如何自动引用dll文件?

在ArcMap中引用动态链接库
我在VB6下编译生成了一个动态链接库文件VBAPrj.dll,其中有一类模块VBACls,此类模块有一个方法Test(Doc As Object)。
常见的方法有三种(作者:张业新):
1.打开VBA编辑器,点#34工具#34菜单下的#34引用#34命令,在引用对话框中引用该动态链接库。
调用代码如下:
Dim VBACls As New VBAPrj.VBACls
VBACls.Test(ThisDocument)
2.如果知道该动态链接库文件的位置,可以在ThisDocument代码窗口以代码形式引用, 代码如下:
Private Sub Document_Open()
On Error Resume Next
#34D:VBAPrj.dll#34
End Sub
3.将动态链接库文件拷贝到文档同一目录下,可在ThisDocument代码窗口中建立如下引用函数:
Private Function GetProjectDoc() As Object
On Error Resume Next
Dim VBACls As Object
Set VBACls CreateObject(#34VBAPrj.VBACls#34)
If VBACls Is Nothing Then
MsgBox #34VBAPrj.dll必须和文档在同一目录下!#34
Exit Function
End If
Set GetProjectDoc VBACls
End Function
然后以以下代码形式调用Test:
Dim objPrjDoc As Object
Set objPrjDoc GetProjectDoc
Call objPrjDoc.Test(ThisDocument)
Set objPrjDoc Nothing
使用第一种方法调试提示找不到类库,第二种方法我没试过,用了第三种方法调试成功。我也觉得第三种还是蛮好的,除了多几行代码。成功调用DLL后原来很多在VB下写的东东简单改一下就可以在VBA下用了,效率又高,保密性又好

EXCEL中工作簿复制并重命名的VBA怎么写?

  Sub 新建工作簿()
   False
  Dim gzb As Workbook
  Set gzb
   1-a
  Workbooks(A.xls).Sheets(a) [a1]
  (after:Worksheets()).Name 1-b
  Workbooks(A.xls).Sheets(b) [a1]
   1-A.xls, FileFormat:xlExcel8
  Set gzb Nothing
  
   True
  End Sub
这个vba代码写在A工作簿的模块里即可,指定区域你可以自己修改下代码,我这里是全表复制的效果。