Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何根据文件名填写excel名称_Vba_Excel - Fatal编程技术网

Vba 如何根据文件名填写excel名称

Vba 如何根据文件名填写excel名称,vba,excel,Vba,Excel,我想问一下,是否有excel宏或vba自动获取文件名,例如D01Q12013,然后将三个新列(地区、季度、年份)添加到前十三列中包含现有数据的表中,并根据文件名填充三个新列(地区-01、季度-1、年份-2013)?以下内容可以帮助您开始: Sub GetName() Range("A1").Value = ThisWorkbook.Name Range("A2").Value = "District - " & Mid(ThisWorkbook.Name, 2, 2) Range("A

我想问一下,是否有excel宏或vba自动获取文件名,例如D01Q12013,然后将三个新列(地区、季度、年份)添加到前十三列中包含现有数据的表中,并根据文件名填充三个新列(地区-01、季度-1、年份-2013)?

以下内容可以帮助您开始:

Sub GetName()

Range("A1").Value = ThisWorkbook.Name
Range("A2").Value = "District - " & Mid(ThisWorkbook.Name, 2, 2)
Range("A3").Value = "Quarter - " & Mid(ThisWorkbook.Name, 5, 1)
Range("A4").Value = "Year - " & Mid(ThisWorkbook.Name, 6, 4)

End Sub
这里有两个关键要素:

  • ThisWorkbook.Name=提供代码所在工作簿的名称。您还可以使用“ActiveWorkbook.Name”获取活动工作簿的名称
  • Mid=允许您提取文本的一部分(例如工作簿的文件名)。使用此功能的格式为:

    MID(从文本到提取、起始位置、字符数)

  • 因此,行“Range(“A4”).Value=“Year-”&Mid(ThisWorkbook.Name,6,4)”将单元格A4的值设置为以“Year-”开头的短语,然后使用以代码所在工作簿文件名第六个字符开头的四个字符


    使用这些元素和宏记录器,您应该能够完成插入包含部分文件名的新列的目标。

    您的问题的答案是肯定的。DIR函数和其他字符串操作函数(Mid、len、left、right等)可以用来获得您想要的。明白了,它起作用了。现在进入解决方案的其余部分。谢谢!:)