【发布时间】:2015-02-24 03:47:56
【问题描述】:
我想问一下是否有一个excel宏或者vba来自动获取文件名例如D01Q12013,然后将三个新列(地区、季度、年份)添加到前十三列现有数据的表中,并根据文件名填充三个新列(地区 - 01、季度 - 1、年 - 2013)?
【问题讨论】:
-
您的问题的答案是肯定的。 DIR 函数与其他字符串操作函数(Mid、len、left、right 等)一起可以得到你想要的。
我想问一下是否有一个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
这里的两个关键要素:
Mid = 允许您提取一段文本的一部分(例如工作簿的文件名)。该函数的使用格式为:
MID(text_to_extract_from, start_position, number_of_characters)
因此“Range("A4").Value = "Year - " & Mid(ThisWorkbook.Name, 6, 4)" 行将单元格 A4 的值设置为以“Year -”开头的短语,然后使用以代码所在工作簿文件名的第六个字符开头的四个字符。
使用这些元素和宏记录器,您应该能够实现插入包含部分文件名的新列的目标。
【讨论】: