我想寫一個Excel宏/ VBA代碼來調整列的內容基於文件的標題。目前,我有一個宏設置,可以根據輸入的URL下載一個csv文件。宏會自動格式化並命名文件。我想使用文件名稱/標題的前5個字符來自動格式化其他單元格。如何使用excel文件的文件名來更改一列單元格?
例如,文件名是48GHY_fjfdkjfe33.RHRH-msadklfjeiojo。我在我的文件中有一個名爲name + type的列。我想將「名稱」行與標題結合起來並讓它填充字段。下面的兩張圖片提供了一個前後的圖片。
目前,我有前5個字符鍵入到一個單獨的字段,然後使用: = 「48GHY」 & A2的功能。
有沒有辦法在Excel/VBA中做到這一點?
最初的問題得到了回答,但現在我試圖把它放在宏中尋求額外的幫助。因爲它仍然是一個問題,我不認爲它需要另一個帖子。
這是當前使用的宏/ VBA。當我運行這個時,它只顯示#VALUE!在細胞中。這兩套代碼之間唯一不同的是,A和B柱是現在J和K
' Insert Column after name and then rename it name+type
Rows(1).Find("name").Offset(0, 1).EntireColumn.Insert
Rows(1).Find("name").Offset(0, 1).FormulaR1C1 = "name+type"
「凍頂行
Rows("1:1").Select
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True
」保存文件
ActiveWorkbook.Save
「的內容添加到名稱+型列
Range("K2").Select
ActiveCell.FormulaR1C1 = "=LEFT(MID(CELL(""filename"",RC[-1]),SEARCH(""["",CELL(""filename"",RC[-1]))+1,SEARCH(""]"",CELL(""filename"",RC[-1]))-SEARCH(""["",CELL(""filename"",RC[-1]))-1),5)&RC[-1]"
Range("K2").Select
Selection.Copy
Range("K2:K8294").Select
ActiveSheet.Paste
「自動調整所有列
Columns("A:AK").Select
Selection.Columns.AutoFit
末次
*一個額外的評論。我修改您在宏提供的代碼,但在每個單元后,我運行下面的代碼在塔K:
=LEFT(MID(CELL("filename",J2),SEARCH("[",CELL("filename",J2))+1,SEARCH("]",CELL("filename",J2))-SEARCH("[",CELL("filename",J2))-1),5)&J2
*最後一個音符。文件名被保存爲48GHY_fjfdkjfe33.RHRH-msadklfjeiojo#csv.txt(莫非有什麼關係呢?)
+1我們去了,同時發佈了幾乎相同的東西。 –
如果文件名不是保存在本地,還是隻讀? – Jonny
@Jonny:你不必輸入文件名:)只需複製並粘貼公式:) –