如何根据整数定义的人员名称保存新建文件夹?及对应VBA文件保存代码正确性咨询
VBA文件夹创建与文件保存问题解答
1. 如何根据整数定义的人员名称创建对应文件夹?
其实很简单,咱们先把整数和人员名称做个映射,比如用字典或者数组来关联,然后根据整数拿到对应的名称,再创建文件夹就行。举个实际的例子:
首先定义整数和人员的对应关系(用字典会更灵活方便):
' 创建字典来映射整数ID和人员名称 Dim userDict As Object Set userDict = CreateObject("Scripting.Dictionary") userDict(1) = "Alice" userDict(2) = "Bob" userDict(3) = "Charlie"
然后假设你有个整数变量(比如从单元格或者其他逻辑里获取的),比如userID = 2,接下来拼接文件夹路径并创建:
Dim targetFolder As String targetFolder = "D:\Test\" & userDict(userID) ' 先检查文件夹是否已经存在,避免重复创建报错 If Dir(targetFolder, vbDirectory) = "" Then MkDir targetFolder End If
这样就可以根据整数对应的人员名称创建专属文件夹啦。
2. 你的SaveAs代码有个关键问题,咱们来捋一捋
先看你写的代码:
ActiveWorkbook.SaveAs "D:\Test\" & V & "_" & Format(Date, "dd-mmm-yyyy") & ".xlsx", FileFormat:=51
这里有个明显的问题:你之前创建的文件夹是D:\Test\V(V是用户名),但这段代码是把文件直接存在D:\Test根目录下,文件名是用户名_日期.xlsx,而不是存到你刚创建的用户文件夹里!
另外还有几个小细节要注意:
FileFormat:=51是对的,它对应标准的xlsx格式(非宏工作簿),如果你的工作簿带宏,要改成FileFormat:=52(xlsm格式)。- 最好先确认目标文件夹存在,不然SaveAs会直接报错。
修正后的代码应该是这样的:
Dim saveFilePath As String ' 把文件路径指向用户专属文件夹内部 saveFilePath = "D:\Test\" & V & "\" & Format(Date, "dd-mmm-yyyy") & ".xlsx" ' 提前确认文件夹存在,避免报错 If Dir("D:\Test\" & V, vbDirectory) = "" Then MkDir "D:\Test\" & V End If ' 执行保存 ActiveWorkbook.SaveAs saveFilePath, FileFormat:=51
这样文件就会乖乖存到你之前创建的对应用户文件夹里啦。
内容的提问来源于stack exchange,提问作者Darshan Kadam
相关产品推荐
相关产品推荐

