Stata处理Excel多sheet保存时报Cabo not found(r(111))错误求解
错误根因
你遇到的Cabo not found, r(111)报错和Excel工作表不存在无关,属于Stata语法逻辑错误:
- 你在
ifsheet' == "Cabo"这行的局部宏引用没有加双引号,Stata会把解析后得到的Cabo`识别为变量名去匹配数据集里的字段,找不到对应变量就抛出r(111)错误。
修正后可运行代码
clear foreach sheet in "Cabo" "Ga" "Inha" { import excel using "filename.xlsx", sheet("`sheet'") firstrow // 此处放置你自定义的数据操作逻辑 if "`sheet'" == "Cabo" { save test1018, replace } else { append using test1018.dta save test1018, replace } }
额外注意事项
save命令建议加上replace选项,避免重复运行代码时出现「文件已存在」类报错- 可提前运行
import excel using "filename.xlsx", describe命令,输出Excel文件内所有工作表名称,确认你写的工作表名和实际完全一致 - 多表append前建议校验各表处理后的变量名、变量类型、标签完全匹配,避免拼接数据时出现格式错乱
内容的提问来源于stack exchange,提问作者Erica
相关产品推荐
相关产品推荐

