2016-08-17 37 views
1

私はExcelで作業しています。列Aから始まる20行目の最初の空白/空のセルを見つけることができる必要があります。戻り値は実際の列の名前でなければなりません。 AB、AADなど。私がやることは、このセルに値を貼り付けることです。ここにはその行が緑色で強調表示された写真があります。Excel VBA行の最初の空白セルの列名を検索

Dim wkb As Excel.Workbook 
Dim wks2 As Excel.Worksheet 
Dim strMSG As String 
Dim LastRow As Long 

Set wkb2 = ThisWorkbook 
Set wks2 = wkb2.Sheets("Daily") 
columnNumber = wks2.Cells(20, wks2.Columns.Count).End(xlToLeft).Column 
+1

大変申し訳ございませんが、ここに画像やリンクはありません。あなたが抱えていることは何ですか? – Siva

+2

[列番号を文字に変換する機能]の複製がありますか?(http://stackoverflow.com/questions/12796973/function-to-convert-column-number-to-letter) –

+0

@partyhatpanda ..... deleted私の答え。問題の手紙部分を逃した。 :)ありがとうございました。 – cyboashu

答えて

1

あなたのクエリ: -

はあなたのコードwks2.Cells(20, wks2.Columns.Count).End(xlToLeft).Columnによって応答されない行

の最初の空白/空のセルを検索します。その微妙ではあるが大きな違いです。

.End(xlToLeft)または.End(xlUp)は、多くの場合、行/列の使用済みセルである最後の使用済みセルを見つけるために使用されます。最初に使用したセルを見つけるには、それぞれのセルをチェックするか、範囲内のすべての空白セルに基づいて範囲を作成し、その範囲内の最初の項目を調べます。

以下のコードは私のために行いました。そして、列参照を文字として含めました。

Public Sub Sample() 
Dim wkb2  As Excel.Workbook 
Dim wks2  As Excel.Worksheet 
Dim strMSG  As String 
Dim StrColumn As String 
Set wkb2 = ThisWorkbook 
    Set wks2 = wkb2.Worksheets("Daily") 
     StrColumn = Replace(wks2.Range("20:20").SpecialCells(xlCellTypeBlanks).Cells(1, 1).Address, "$", "") 
     StrColumn = Left(StrColumn, Len(StrColumn) - 2) 
    Set wks2 = Nothing 
Set wkb2 = Nothing 
End Sub 
+0

@Jeepedこれを行うには別の方法があると確信していますが、これは完了します:) –

+1

私のメソッドは非常に近いですが、相対的な行と列のアドレス指定を指定し、20をvbNullStringに置き換えました。 – Jeeped

0

私は列番号をその文字に変換する機能を持っていますが、私はそれを単純なコードに変換しようとします。

dim colLetter as string 
Dim vArr 
vArr = Split(Cells(1, columnNumber).address(True, False), "$") 
colLetter = vArr(0) 

スタンドアロンでどれくらいうまく動作しているかわかりません。私が使用している機能は、

Public Function Col_Letter(lngCol As Long) As String 

Dim vArr 
vArr = Split(Cells(1, lngCol).address(True, False), "$") 
Col_Letter = vArr(0) 

End Function 

です。あなたが好きなものを使ってください!

関連する問題