我建立一個功能,找到列:Excel宏:找到列單元格中沒有激活它
Function findColumn(NameSheet As String, ColName As String)
findColumn = 0
Worksheets(NameSheet).Select
Sheets(NameSheet).Range("A1").Select
Do Until ActiveCell.Value = ""
searchTerm = ActiveCell.Value
If (LCase(ActiveCell.Value) = LCase(ColName)) Then
findColumn = Mid(ActiveCell.Address, 2, 1)
Exit Do
End If
ActiveCell.Offset(0, 1).Activate
Loop
End Function
此功能!但它激活其他工作表,並且我必須返回到上一張工作表。結果並不是無縫的,因爲當函數搜索列地址時,有一個表單轉換的小故障。
有沒有更好的方法來做到這一點?因爲我多次使用這種方法,當單元格上的每次單擊都出現故障時,我的合作伙伴不滿意。
請幫
+ 1額外的錯誤處理+不使用'MID(ActiveCell.Address,2,1)'來得到列號:)你也可能要添加'Thisworkbook'之前每'表(NameSheet) ' –
@SiddharthRout - >'Mid(ActiveCell.Address,2,1)'不返回列號,而是列字母。如果OP要'A'而不是'1',這個findColumn函數將不起作用。我想我們都可以按照OP編寫代碼的方式假設不同的事情,即取決於我們是否認爲findColum = 0更能指示OP後面的內容,而不是'Mid'公式。 –
@SiddharthRout,真的。我去更新它,然後改變了主意。很可能你希望它能在ThisWorkbook上工作,但是如果放在模塊中,可以從不同的工作簿中調用它,在這種情況下它可以在當前工作簿上運行。我們總是可以擴展它以指定所需的工作簿,但這可能會過度呢? –