代码不会在ws中使用第一行表

时间:2014-01-15 21:48:30

标签: excel vba

确定。我最近创建了一个Userform,允许某人输入信息,然后将其插入工作表的表格中。我的问题是插入数据的代码不会将信息插入到表的空白第一行(假设带有标题的完全空表) 这是代码:

Private Sub EnterCommand_Click()
Dim NextRow As Long
Dim ws As Worksheet

Set ws = Worksheets("Sheet1")

'Check for next empty row
NextRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'Add the data
ws.Cells(NextRow, 1).Value = WeekTextBox.Value
ws.Cells(NextRow, 2).Value = DOSTextBox.Value
ws.Cells(NextRow, 3).Value = InvTextBox.Value
ws.Cells(NextRow, 4).Value = TechComboBox.Value
ws.Cells(NextRow, 5).Value = HospComboBox.Value
ws.Cells(NextRow, 6).Value = HoursTextBox.Value

'Close
Unload Me
End Sub

不知道如何强制它使用表格上表格的初始空白行。

感谢。

3 个答案:

答案 0 :(得分:0)

当然总有

ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Select 
   If ActiveCell.Row = 1 Then
      ActiveCell.Offset(0, 0).Select
   Else
      ActiveCell.Offset(1, 0).Select
   End If

答案 1 :(得分:0)

您是否需要它来主动搜索下一个空行?为什么不使用变量来跟踪当前行?

dim NextRow As Long
NextRow= 1

Private Sub EnterCommand_Click()
    Dim ws As Worksheet

    Set ws = Worksheets("Sheet1")'Add the data

    ws.Cells(NextRow, 1).Value = WeekTextBox.Value
    ws.Cells(NextRow, 2).Value = DOSTextBox.Value
    ws.Cells(NextRow, 3).Value = InvTextBox.Value
    ws.Cells(NextRow, 4).Value = TechComboBox.Value
    ws.Cells(NextRow, 5).Value = HospComboBox.Value
    ws.Cells(NextRow, 6).Value = HoursTextBox.Value

    NextRow = NextRow + 1
End Sub
'Close

答案 2 :(得分:0)

尝试此操作以获取最后一行:

NextRow = ws.Range("A1", ws.Range("A" & Rows.Count).End(xlUp)).Find(what:="*", after:=ws.Range("A1"), searchdirection:=xlPrevious).Offset(1,0).Row

你遇到问题是因为你正在处理 Tables 如果您的数据采用 Ranges 的形式,您的代码将有效。

这是逻辑:

ws.Range("A1",ws.Range("A" & Rows.Count).End(xlUp)) '~~> This identifies the search range

如果您的表格为空,则评估为:

Ws.Range("A1","A2") '~~> A2 because that is where the table ends, if this is Range it is A1

以上相当于:

ws.Range("A1:A2")

然后使用.Find函数查找带条目的最后一个数据。

ws.Range("A1:A2").Find(what:="*",after:ws.Range("A1"),searchdirection:=xlPrevious)

Find有很多论点,但在你的情况下,我们只需要上面指定的3个 它的作用是找到前一个上一个单元格,其数据引用A1 希望这会有所帮助。