最近在写EXCEL工具时,听从他人的建议采用了Excel本体与VBA宏分离的方式。这样使得做成的Excel模板如果已经填充了内容,再要使用更改后VBA程序进行处理时变得简单。避免了需要把已存在的Excel里面的内容拷贝到新的Excel模板中的麻烦。
全过程如下
1 建立Excel的模板
2 VBA编辑器中插入一个模块,把处理代码写在里面。
3 VBA编辑器中,ThisWorkBook中,添加标题栏Tab增加事件
4 代码完成,测试通过后。文件——另存为——( .xla类型 )
5 删除模板中 ThisWorkBook 中的代码 和 模块
6 ok!大功告成。这两个东西可以发布了(一个Excel模板文件,一个xla文件)
XLA文件的使用
1 模板Excel文件中 填入需要处理的内容
2 点击 xla 文件,此时在模板 Excel文件的标题栏上会增加标题,然后可执行其中的事件,即可完成业务处理的功能
小技巧
ThisWorkBook——标题栏Tab增加事件代码
使用指定名Sheet内容的函数方法
Function MakeTableSql(sheetName As String) As String
附加示例:.net 资源文件生成器
link
全过程如下
1 建立Excel的模板
2 VBA编辑器中插入一个模块,把处理代码写在里面。
3 VBA编辑器中,ThisWorkBook中,添加标题栏Tab增加事件
4 代码完成,测试通过后。文件——另存为——( .xla类型 )
5 删除模板中 ThisWorkBook 中的代码 和 模块
6 ok!大功告成。这两个东西可以发布了(一个Excel模板文件,一个xla文件)
XLA文件的使用
1 模板Excel文件中 填入需要处理的内容
2 点击 xla 文件,此时在模板 Excel文件的标题栏上会增加标题,然后可执行其中的事件,即可完成业务处理的功能
小技巧
ThisWorkBook——标题栏Tab增加事件代码
Private
Sub Workbook_Open()
Dim TargetBar As CommandBar
Dim NewMenu As Object
Dim NewItem As Object
Dim NewMenuTemp As Object
Set TargetBar = Application.CommandBars("Worksheet Menu Bar")
TargetBar.Visible = True
For Each NewMenuTemp In TargetBar.Controls
If NewMenuTemp.Caption = "资源文件生成工具" Then
Exit Sub
End If
Next
Set NewMenu = TargetBar.Controls.Add(Type:=msoControlPopup, ID:=1, Temporary:=True)
NewMenu.Caption = "资源文件生成工具"
Set NewItem = NewMenu.Controls.Add(Type:=msoControlButton, ID:=1, Temporary:=True)
NewItem.Caption = "执行"
NewItem.OnAction = "MakeResourceFile.MakeFile"
Exit Sub
End Sub
Dim TargetBar As CommandBar
Dim NewMenu As Object
Dim NewItem As Object
Dim NewMenuTemp As Object
Set TargetBar = Application.CommandBars("Worksheet Menu Bar")
TargetBar.Visible = True
For Each NewMenuTemp In TargetBar.Controls
If NewMenuTemp.Caption = "资源文件生成工具" Then
Exit Sub
End If
Next
Set NewMenu = TargetBar.Controls.Add(Type:=msoControlPopup, ID:=1, Temporary:=True)
NewMenu.Caption = "资源文件生成工具"
Set NewItem = NewMenu.Controls.Add(Type:=msoControlButton, ID:=1, Temporary:=True)
NewItem.Caption = "执行"
NewItem.OnAction = "MakeResourceFile.MakeFile"
Exit Sub
End Sub
使用指定名Sheet内容的函数方法
Function MakeTableSql(sheetName As String) As String
附加示例:.net 资源文件生成器
link