File 使用TCOM使用变量存储csv文件

File 使用TCOM使用变量存储csv文件,file,tcl,File,Tcl,我想使用TCOM中变量的值保存csv文件 下面是我如何使用一个硬编码值test1.csv保存它的,它运行良好 $workbook SaveAs {c:\test\test1.csv} $XlFileFormat(xlCSV) 但是当我想用一个类似于 $workbook SaveAs {c:\test\$testname.csv} $XlFileFormat(xlCSV) 我得到了error或者我只得到了名为$testname.csv的文件,但没有得到变量的值。怎么做。?我甚至尝

我想使用TCOM中变量的值保存csv文件

下面是我如何使用一个硬编码值test1.csv保存它的,它运行良好

   $workbook SaveAs {c:\test\test1.csv} $XlFileFormat(xlCSV)
但是当我想用一个类似于

    $workbook SaveAs {c:\test\$testname.csv} $XlFileFormat(xlCSV)
我得到了error或者我只得到了名为$testname.csv的文件,但没有得到变量的值。怎么做。?我甚至尝试了${testname},但这不起作用。

包含一些内容意味着几乎不执行替换。移除大括号,然后执行类似于
$workbook SaveAs“C:/test/$testname.csv”$XlFileFormat(xlCSV)

的操作,将某些内容包含在内意味着几乎不执行任何替换。删除大括号并执行类似于
$workbook SaveAs“C:/test/$testname.csv”$XlFileFormat(xlCSV)

的操作

$workbook SaveAs "c:\test\${testname.csv}" $XlFileFormat(xlCSV)
试试这个

$workbook SaveAs "c:\test\${testname.csv}" $XlFileFormat(xlCSV)

尝试此操作后,仍然获得0x800a03ec{无法访问文件}错误。该文件当前是否正被其他进程使用?否。但是,如果你显式地给文件名赋予一些值,它就可以正常工作。好吧,这很简单:如果你执行
set x“C:/test/$testname.csv”怎么办;卖出x美元$工作簿另存为$x$XlFileFormat(xlCSV)
--由
放置
生成的打印输出看起来正确吗?我很想在以这种方式将文件名传递给Excel时强制使用反斜杠。但是,它将完全执行所需的转换,因此您不必做太多的繁琐工作。您将应用它来创建
SaveAs
的参数。尝试此操作后,仍然得到0x800a03ec{无法访问该文件}错误。该文件当前是否正在被其他进程使用?否。但是,如果你显式地给文件名赋予一些值,它就可以正常工作。好吧,这很简单:如果你执行
set x“C:/test/$testname.csv”怎么办;卖出x美元$工作簿另存为$x$XlFileFormat(xlCSV)
--由
放置
生成的打印输出看起来正确吗?我很想在以这种方式将文件名传递给Excel时强制使用反斜杠。但是,它将完全执行所需的转换,因此您不必做太多的繁琐工作。您可以应用它来创建
SaveAs
的参数。搜索,大量的问题和答案搜索,大量的问题和答案
$workbook SaveAs“c:/test/${testname}.csv”$XlFileFormat(xlCSV)
看起来更合理——我怀疑任何人的代码中都不会有名为“testname.csv”的变量;-)是的,正如@thelazydeveloper所指出的,在双引号字符串中必须使用正斜杠,或者使用反斜杠(
“C:\\foo\\bar”
)。呵呵,我想我也是一个懒惰的开发人员!感谢您指出这一点。
$workbook SaveAs“c:/test/${testname}.csv”$XlFileFormat(xlCSV)
看起来更合理——我怀疑任何人的代码中都会有一个名为“testname.csv”的变量;-)是的,正如@thelazydeveloper所指出的,在双引号字符串中必须使用正斜杠,或者使用反斜杠(
“C:\\foo\\bar”
)。呵呵,我想我也是一个懒惰的开发人员!谢谢你指出这一点。