2017-07-05 61 views
0

我正在創建一個VBA代碼來清除多個Excel文件中的一些數據。問題在於頭文件的位置不固定,當我將文件放在一起時,列會滑落。 我必須根據標題名稱找到列索引並將它們分配給變量。如何查找並返回VBA中的列索引?

我將頭部的範圍聲明爲一個變量。 如何將列索引返回給變量? 我從來沒有這樣做過,這就是爲什麼我問你們。 在我第一次嘗試,我想是這樣的:

Set findrng = sourceWS.Range(Cells(1, 1), Cells(1, 100)) 
index1 = findrng.Find("COUNTRY") 

指數1應該存儲像1或21的整數...

任何幫助,將不勝感激。

回答

0

對不起,我剛剛發現它。這很簡單,因爲地獄...

ind1 = findrng.Find("COUNTRY").Column 
+0

請注意,只要找不到匹配項,'.Find'就會返回'Nothing':在這些情況下,此代碼將引發運行時錯誤91。在**驗證其包含有效的對象引用後,您應**總是**只訪問「查找」調用結果的成員。 '如果找不到那麼就是' –

1

我很困惑,你在問什麼。

是你的問題,你想能夠搜索你的第一行的標題,並檢索基於標題的特定列?

thisRow = 1 

searchCol = Sheet1.Cells(thisRow, 1).EntireRow.Find(What:="someString", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Column 

?然後,您可以使用.column訪問器訪問該列。

+0

是的,.column解決了我所有的問題!謝謝! – simpleMan

+0

好吧真棒。密碼! – emilyn

相關問題