我打算import
并通过foreach
循环处理各种Excel文件。 import
本身不起作用,因为Stata不会将'x'识别为Excel文件名的替代品。
local excelfiles "bb_01 bit0_2 bun comp_03 comp_c01m LLU-ck"
foreach item of local excelfiles {
import excel using "D:\...\...\...\Data\Files\`x'.XLS", sheet("DynamicReport") cellrange(A2:AI201) firstrow
keep v1 v2 v3 v4
save "D:\...\...\...\...\`x'.dta", replace
我得到的错误是file D:\...\...\...\...\Data\Files.XLS not found
答案 0 :(得分:1)
这里有各种各样的问题。
您的代码不一致。您在item
语句中声明foreach
,但在循环中引用x
。因此,就Stata而言,永远不会定义本地宏x
。这本身并不是错误,但是Stata用空字符串替换对不存在的本地宏(为空)的引用,以及您报告的结果。
如果您参考x
替换item
的引用,您的代码仍然无效。请参阅(例如)http://www.stata.com/manuals14/u.pdf 18.3.11和http://www.stata-journal.com/sjpdf.html?articlenum=pr0042,以获得有关使用本地宏引用立即跟随反斜杠的警告。问题是反斜杠既是转义字符又是完整Windows文件路径中的分隔符。应该通过在文件路径中使用正斜杠来解决冲突,即使在Windows中也是如此。
循环永远不会在您显示的代码段中关闭。
否则我无法检查您的代码,因为您的代码无法重现。我认为三点...
不是字面的,而是取代不应该至关重要的细节。