如何使用vba获取excel中使用的最后一列

如何使用vba获取excel中使用的最后一列,vba,excel,Vba,Excel,嗨,我在进入工作表中使用的最后一列时遇到问题 我知道,目前为止,我的最后一列是43,我希望它在第44列输入一个值,所以当我再次搜索时,它将转到第44列作为使用的最后一列,然后在45处输入一个值,依此类推。我使用ref num来查找正确的行 我使用的代码如下,以尝试获取最后一列 'find last empty Col in database LastCol = sou.Cells(2, Columns.count).End(xlToLeft).Column + 1 MsgBox LastCol

嗨,我在进入工作表中使用的最后一列时遇到问题

我知道,目前为止,我的最后一列是43,我希望它在第44列输入一个值,所以当我再次搜索时,它将转到第44列作为使用的最后一列,然后在45处输入一个值,依此类推。我使用ref num来查找正确的行

我使用的代码如下,以尝试获取最后一列

'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
问题是,出于某种原因,它只进入第22列。我试着用其他方法得到最后一列,但他们刚刚给了我整张纸上的最后一列,这又不是我想要的


如果有人能帮我一把,因为我是一个新手,这将是非常感谢

要查找使用的最后一行,是否尝试过

lastRow = ActiveSheet.UsedRange.Rows.Count

如果这不起作用,请详细说明出了什么问题,我可以提交更多代码。

这是因为该行第22列为空。看一看:您正在检查第2行中的最后一列,因此我猜这是第22列,但在另一行中可能是43列。我认为你需要使用Find。令人恼火的是,在从不同的excel表单填充工作表时,会出现一些空白!并非所有字段都将被输入。有没有办法循环查找整行中的最后一个值,因为它将始终被填充?还感谢您提供的帮助,您可以在录制宏时按
ctrl end
。获取最后一行和最后一列。说明如何查找给定范围或工作表中的最后一行或列。在使用该代码之前,您需要确保工作表的第1行是
UsedRange
的一部分。例如,如果第一个使用的行是10,最后一个使用的行是12,则
UsedRange
中只有3行。或者,您需要说类似于
lastRow=ActiveSheet.UsedRange.Rows.Count+ActiveSheet.UsedRange.Row-1的话。