如何填写基于文件名的Excel名称

我想问一下,如果有一个Excel的macros或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 

这里的两个关键要素:

  1. ThisWorkbook.Name =给出代码所在工作簿的名称。 您也可以使用“ActiveWorkbook.Name”来获取活动的工作簿的名称。
  2. Mid =允许您提取一段文本(如工作簿的文件名)。 使用这个函数的格式是:

    MID(text_to_extract_from,start_position,number_of_characters)

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

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