|
附件——xls数值导出配置文件(例).rar 文件是我已经写宏的一个例子
例子中共有三个XLS表单,都可以使用相同的宏
如何使用宏:
打开例子
工具-> 宏 -> 宏 -> 出现宏界面
选中“点这里的宏” -> 执行
你会看到D盘目录中出现一个1001.txt的文件,这便是使用宏导出的一个数值配置文件了,三个XLS表单中的数据全部被导出了
如何编辑宏:
打开例子
XLS工具-> 宏 -> 宏 -> 出现宏界面
选中“点这里的宏” -> 编辑
你会看到我写的导出配置文件的代码,其中有注释补充,稍微有点VB语言功力的都能看懂,宏十分简单。
在此我贴一下宏的所有代码:
Sub 点这里的宏()
'变数宣告
Const inOutFileNumber = 1
Dim jianzhuming As String
Dim maohao As String
Dim fenhao As String
Dim dayu As String
Dim xiaoyu As String
Dim jianhao As String
Dim gang As String
Dim deng As String
Dim szOutFilename As String
Dim colIndex As Integer
Dim rwIndex As Integer
Dim colMax As Integer
Dim rwMax As Integer
Dim rwStart As Integer
Dim colStart As Integer
'定义一些字符串,导出配置需要的格式时插入
xiaoyu = "<"
jianhao = "-"
gang = "/"
deng = "="
'需要导出的配置文件名和路径,在XLS文件中的F2格子中有写导出配置文件名和路径——d:\1001.txt
szOutFilename = Worksheets(1).Cells(2, 6).Value
'打开szOutFilename变量刚才获得的需要到处的配置文件名和路径
Open szOutFilename For Output As #inOutFileNumber
For idx = 1 To Sheets.Count
Sheets(idx).Select
'以下使用XLS宏命令ActiveSheet.Cells获取XLS文件中的每格数据,ActiveSheet.Cells(行, 列).Value
'取得XLS第二行中定义的需要需要导出的配置文件数据的开始行、开始列、最大行(也就是数据读取结束行)、最大列(也就是数据读取结束列)
hangStart = ActiveSheet.Cells(2, 1).Value
lieStart = ActiveSheet.Cells(2, 2).Value
hangMax = ActiveSheet.Cells(2, 4).Value
lieMax = ActiveSheet.Cells(2, 5).Value
'以下是读取XLS指定格子中的数据并将它们拼接字符串输出到导出的配置文件中
jianzhuming = ActiveSheet.Cells(7, 1).Value
maohao = """"
fenhao = ";"
dayu = ">"
Print #inOutFileNumber, "<meta http-equiv";
Print #inOutFileNumber, "=";
Print #inOutFileNumber, """";
Print #inOutFileNumber, "Content-Type";
Print #inOutFileNumber, """";
Print #inOutFileNumber, " content=";
Print #inOutFileNumber, """";
Print #inOutFileNumber, "text/html; charset";
Print #inOutFileNumber, "=";
Print #inOutFileNumber, "utf-8";
Print #inOutFileNumber, """";
Print #inOutFileNumber, ">"
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Print #inOutFileNumber, "<?"
Print #inOutFileNumber, "$building["""; jianzhuming; """]->info =";
Print #inOutFileNumber, "" & maohao & "" & jianzhuming & "的说明" & maohao & "" & fenhao & ""
For hang = hangStart To hangMax + hangStart - 1
For lie = lieStart To lieMax + lieStart - 1
Print #inOutFileNumber, "$building["""; jianzhuming; """]->level["; ActiveSheet.Cells(hang, 2).Value; "]"; '名称
If lie > lieMax + lieStart - 4 Then
Print #inOutFileNumber, "[" & maohao & ActiveSheet.Cells(6, lie).Value & maohao & "]"; '项目
Print #inOutFileNumber, "[";
If lie = 9 Then
Print #inOutFileNumber, "0";
ElseIf lie = 10 Then
Print #inOutFileNumber, "1";
ElseIf lie = 11 Then
Print #inOutFileNumber, "2";
End If
Print #inOutFileNumber, "]";
Else
Print #inOutFileNumber, "[" & maohao & ActiveSheet.Cells(6, lie).Value & maohao & "]"; '项目
End If
Print #inOutFileNumber, "="; ActiveSheet.Cells(hang, lie).Value; ""; ""; ''数字
Print #inOutFileNumber, ";"
Next lie
Print #inOutFileNumber, ""
Print #inOutFileNumber, ""
Print #inOutFileNumber, ""
If hang = hangMax + hangStart - 1 Then
Print #inOutFileNumber, "?>"
End If
Next hang
Next idx
Close #inOutFileNumber
End Sub
|
|