2017-05-11 11 views
-1

こんにちは私のシートに使用されている最後の列に問題があります。vbaを使用してExcelで使用される最後の列を取得する方法

最後の列が43で、列44に値を入力したいと思うので、再度検索すると最後に使用された列として44に進み、次に値を入力します45などのように。私は正しい行を見つけるためにref numを使用しています。

次のように私が使用していたコードは、問題は、何らかの理由でそれが唯一の私が取得する他の方法を使用しようとしましたコラム22に行くということである最後の列

'find last empty Col in database 
LastCol = sou.Cells(2, Columns.count).End(xlToLeft).Column + 1 
MsgBox LastCol 

'For Loop to cycle through the columns 
For x = 2 To LastCol 

    'If the row value at column 1 = the ref number then continue 
    If sou.Cells(x, 1).Value = refNum Then 
     sou.Cells(x, LastCol).Value = Me.commentBox.Text 
     Exit For 
    End If 

Next 

を取得しようとすることです最後の列になっていますが、私はシート全体の最後の列を私に与えてくれましたが、これもまた私が望むものではありません。

誰かが私に手を貸すことができれば、私はこれを初心者にしていると大いに感謝します!それがうまくいかなかった場合は

+0

これは、列22がその行に対して空であるためです。 見てください:https://www.rondebruin.nl/win/s9/win005.htm – SCramphorn

+3

行2の最後の列をチェックしているので、それは列22ですが、別の行では43かもしれませんあなたは私が考えるFindを使う必要があります。 – SJR

+0

シートが別のExcelフォームから取り込まれているため、いくつかの空白があります。すべてのフィールドが常に入力されるわけではありません。いつでも行全体の最後の値を見つけるためにそれを循環する方法は、常に記入されるでしょうか?これまでの助けてくれてありがとう – mono92

答えて

0

使用された最後の行を検索するには、あなたが

lastRow = ActiveSheet.UsedRange.Rows.Count 

を試してみましたが、何が悪かったのか詳しく説明し、私はより多くのコードを提出することができますしてください。

+0

このコードを使用する前に、シートの1行目が 'UsedRange'の一部であることを確認する必要があります。例えば。最初に使用された行が10で最後に使用された行が12だった場合、 'UsedRange'には3行しかありません。あるいは、 'lastRow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row-1'のようなものを言う必要があります。 – YowE3K

関連する問題