2014-06-24 47 views
0

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

+2

您的问题的答案是一个很大的是。可以使用DIR函数和其他字符串操作函数(Mid,len,left,right等)来获得你想要的。 – L42

回答

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)

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

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

+0

明白了,它的工作。现在进入解决方案的其余部分。谢谢!:) – Nico