MaverickRay 發表於 18-11-28 22:46

VBA裡要怎麼直接抓特定名稱的欄位呢?

不好意思,初學者對VBA的語法搞的迷迷糊糊,在煩惱三餐之餘還得學習實在壓力滿滿...由於摸不著頭緒所以有幾個疑問特來請教..===================================
1、我在下載回來的報表裡,上頭的標題列中,
諸如:公司代號、名稱、營收、成本、毛利、管銷、營利、、、、、等等
而由於行業不同,每種產業的項目欄位不一定會排在同一欄..
可能食品業的營收在 C 欄、而電子業的營收在 D 欄的情況、、、
-----------------------------------------
假設個人想要在營收後的一欄插入2欄新欄位,目的是抓取上季或上上季的數值進來,但是每個產業的排放位置不一定,因而在撰寫程序時就不知道如何正確利用程式來自動定位了..
目前只好利用
Columns("C:D").Select    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
可是這樣一來,我就要為不同產業分別訂定欄位的選擇了..
而且可能下一季度(或上一季度),雖然同產業,但卻又會遇到可能的會計項目增減或是載點處的貼心體恤,增加了下載時間等,而使得欄位排放的位置又跑掉了{:4_187:}
所以這個問題實在困擾好久...好久...好久...
不解決感覺自己寫的VBA實在有夠兩光={:4_205:}=救命,我該如何利用欄位名來定位呢?
===================================
2、第二個問題便是在上面問題中綠色字體處,由於我想抓上季、上上季的數據進來該季的報表,雖然前幾季的檔案我都有分年度季度去存檔,但這些檔案可能位在不同的資料夾,那我該如何讓程序能主動提示我去開啟、然後選擇這些檔案呢?(如像MsgBox)
先前我的做法是將路徑直接分配到試算表裡,諸如:
在新插入的欄位儲存格裡填入=IF($A829="","",VLOOKUP($A829,'F:\xxx\aaa\ccc\損益彙總\年季度\食品業.xlsx]當季食品報表'!$A:$AH,19,0))
這個看來落落長的...而且日後修改起來看的我自己都覺得好累
尤其當我試圖將原路徑改名時(因為原先考慮不週的關係)...
但這樣的修改卻會變成原先的參照抓不到數據了..
這讓我實在很苦惱,因為當檔案越積越多時,這原本隨意擺放的檔案,要試圖歸建或重新取個正名歸位前,會變得要考慮一堆...
最後的結果就是.......我變得超沒效率的...{:4_161:}...因為一直在找檔(where are you?)...或一直重建曾經做過的檔(OMG感覺我在夢中有見過這個檔案{:4_120:})

所以我想修改成,讓試算表在跑程序時,能跳出一訊息框..{:4_82:}
問我要開啟哪個檔案,然後當我點選檔案後,由程序去抓該檔(上季報表)的數據,抓完檔案後丟給VBA去試算,試算後把 "值" 丟到新的工作表的新欄位就好..{:4_90:}(我只要值就好了)

這樣一來,系統資源也不會因為每次開啟該檔時就一直參照來參照去的被吃掉。


二來日後就算我將這些檔案一塊搬到別的新設路徑時,這些數據都會完好的保存在個別檔案裡...{:4_181:}(才可以早點睡覺啊)
不知道有沒有大大可以幫幫忙?又或者能提示我該用哪些物件?方法?屬性...感激不盡...祝各位大大心想事成{:4_186:}(話說X爺終於被我一口竹木解了..可土喜可賀可喜可賀)






頁: [1]
查看完整版本: VBA裡要怎麼直接抓特定名稱的欄位呢?