2016-06-29 10 views
-1

特定の文字列を含む特定のワークシートの最初のセルの列アドレスを取得します。ここで文字列(VBA)の最初のインスタンスを表すセルの列アドレスの取得

は私がそうするように書かれているコードです。このコードはエラーなしでコンパイルが

Dim StringInQuestion As String 
Dim ColumnRange1 As Range 
NamedSheet.Select 
Range("A1").Select 
On Error Resume Next 
Set FinalCell = Cells(1, 1).SpecialCells(xlLastCell) 
FinalCellAddress = Cells(FinalCell.Row, FinalCell.Column).Address 
Range(ColumnRange1).Select 
Selection.Copy 
Set ColumnRange1 = NamedSheet.Cells 
Dim ColumnRange2 As Range 
ColumnRange2 = ColumnRange1.Find(StringInQuestion) 
Dim ColumnComposite As Variant 
ColumnComposite = ColumnRange1.Address(ColumnAbsolute:=True) 
Dim Column As Variant 

'Format column address procured for further use (remove any numbers) 

Dim intColumn As Integer 
ColumnComposite = Trim(ColumnComposite) 
For intColumn = 1 To Len(ColumnComposite) 
    If Not IsNumeric(Mid(ColumnComposite, intColumn, 1)) Then 
     Column = Column & Mid(ColumnComposite, intColumn, 1) 
    End If 
Next intColumn 
'Column = Column 

、「列」変数は未定義のまま。何か案は?シェアしてください。ありがとう!

更新:

あなたの助けを@ScottHoltzmanありがとうございます。

+0

は、あなただけの列文字(または数)を返すようにしたいん特定の文字列がAに表示されて初めてのワークシートのセル? –

+0

こんにちは@ScottHoltzman ---列の文字。ご協力いただきありがとうございます。 – PBG

+0

コードは機能しませんか?あなたはエラーを受け取りますか?もしそうなら、エラーとはどこですか? – BruceWayne

答えて

2

ビルトインコードがはるかに簡単にできるオブジェクトとメソッドの多くがあります。

Dim ws as Worksheet 
Set ws = Worksheets("mySheet") 

Dim rngFound as Range 
Set rngFound = ws.Cells.Find(StringInQuestion, lookat:=xlPart) 'assumes can be part of cell, change to xlAll if need exact match 

If not rngFound is Nothing Then 
    Dim sCol as String 
    sCol = Split(rngFound.Address,"$")(1) 'letter 
    'sCol = rngFound.Column 'to get number 
Else 
    Msgbox StringInQuestion & " not found in " & ws.Name & "." 
End If 
関連する問題