vba - 在vba中用两个函数编写一个文件

标签 vba filesystems

这是我将 excel 单元格写入 XML 文件的主要功能的标题。我想让这个调用另一个函数,它可以自己写一套。

Public Sub WriteXML()
Dim Sheet As Worksheet
Dim Cell As Range
Dim xmlFile

xmlFile = ThisWorkbook.Path & "\" & 'Test1' & ".xml"

Set Sheet = ActiveWorkbook.Worksheets("Sht1")
Open xmlFile For Output As #1
    Print #1, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & _
          " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>"
Call WriteCustomer(xmlFile)

这是第二个函数的开始,尽管我收到了“找不到对象”类型的错误。
Sub WriteCustomer(x As Variant)

Print x, "         <Customer>"
Print x, "             <First>" & 'Bill' & "</First>"
Print x, "             <Last>" & 'Johnson' & "</Last>"
Print x, "         </Customer>"
Print x, ""
End Sub

我需要如何构造调用和/或变量以将打开的文件作为对象传递给第二个函数?

最佳答案

您可以按如下方式请求、存储和传递句柄:

Dim handle As Integer
handle = FreeFile()

Open xmlFile For Output As #handle
   Print #handle, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & _

...
Call WriteCustomer(handle)


Sub WriteCustomer(handle As Integer)
   Print #handle, "         <Customer>"

关于vba - 在vba中用两个函数编写一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299393/

相关文章:

vba - 根据不同的单元格值创建字母数字列表

excel - 如何从两个列表和列中找到完全匹配?

c - Linux下C程序利用inode结构修改目录为文件

ios - iOS 何时清理本地应用程序 ./tmp 目录?

excel - 为什么 VBA 中的每个类都有一个 Application 属性?

windows - 从 VBA 运行 command.com 或 cmd.exe 导致 MSG 命令出现问题

vba - 将所有工作表重命名为 Sheet1 ColA 中每个单元格的值

javascript - 可视化文件系统目录树字符串

java - 在 Java 中将 MemoryFileSystem 链接到普通文件系统

linux - 如何将多个子目录下的所有文件移动到一个目录下