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

时间:2014-06-24 06:56:46

标签: excel vba excel-vba

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

1 个答案:

答案 0 :(得分:1)

以下内容应该让你开始:

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)

  3. 所以行"范围(" A4")。值="年 - " &安培; Mid(ThisWorkbook.Name,6,4)"将单元格A4的值设置为以"年开始的短语 - "然后使用以代码所在的工作簿的文件名的第六个字符开头的四个字符。

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