2017-12-05 6 views
0

私はこのようなExcelシートを持っています。最初の行のセル名からExcelの列文字を確認してください

enter image description here

ヘッダ名が最初の行に見出されます。私は最初の行にセル名が与えられている列番号を返すVBA関数を持っていると思います。たとえば、getColumnNumber( "B Symbol")はBを返します。 getColumnNumber( "C Symbol")はCを返します。

私はExcel 2016を使用しています。

+0

列番号または列文字が必要ですか?あなたの投稿は列番号を示していますが、あなたの例ではBを取得したいので、どちらを使いますか? –

+0

カラム文字。申し訳ありませんが、私の質問に間違った単語の選択。 – user1315789

答えて

2

テキストを見つけて読み込みます。

With Worksheets(1).Range("a1:z1") ' 
    Set c = .Find("whatever you need to find", lookin:=xlValues) 
    If Not c Is Nothing Then 
     firstAddress = split(c.Address,"$")(0) 
     msgbox firstAddress 
    End If 
End With 

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-find-method-excel

+0

回答ありがとうございます。 Upvoted。最初の行のテキストだけを探したい場合はどうすればよいですか?おっとっと。私はあなたのコードを慎重に読んで、私が望むことをします。 – user1315789

+0

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-rows-property-excel 'ワークシート(1).Rows(1)' Google検索。すべてがそこにあります:) – teddy2

+1

teddy2、あなたの答えに必要なわずかな変更。 'firstAddress = split(c.Address、" $ ")(0)'は 'firstAddress = split(c.Address、" $ ")(1)'でなければなりません。それ以外の場合、あなたの答えは完璧です。とにかく、あなたの答えを正しいものとしてマークしました。必要な変更を行ってください。ありがとうございました。 – user1315789

2

あなたはこのためにVBAを必要としません。次の式も同様に動作し、VBAは本質的に同じ方法を使用しています。

=SUBSTITUTE(ADDRESS(1, MATCH("C Symbol", 1:1, 0), 4), 1, TEXT(,)) 
0

これは私自身の質問に対する答えです。これはteddysから修正されました。彼の答えには若干の誤りがあります。

With Worksheets(1).Range("a1:z1") ' 
    Set c = .Find("whatever you need to find", lookin:=xlValues) 
    If Not c Is Nothing Then 
     firstAddress = split(c.Address,"$")(1) 'should be 1, not 0 
     msgbox firstAddress 
    End If 
End With 
関連する問題