我已遵循this教程

为了处理按钮动作。我想每次单击按钮时都将数据写入新行,但是该代码要么覆盖现有数据,要么将数据写入新行(并再次覆盖)。

代码:

Private Sub cmdUnesiUBazu_click()
     Sheet1.Activate

    Range("B2").End(xlDown).Offset(1, 0).Select ' want to start write from C2 cell
    ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1

    ActiveCell.Offset(0, 1).Value = txtSifraOsobe.Value
    ActiveCell.Offset(0, 2).Value = txtImeIPrezime.Value
    ActiveCell.Offset(0, 3).Value = txtAdresa.Value
    ActiveCell.Offset(0, 4).Value = cboGrad.Value
    ActiveCell.Offset(0, 5).Value = cboDrzava.Value
    ActiveCell.Offset(0, 7).Value = txtDatumRodjenja.Value

  End Sub

最佳答案

最好直接引用单元格,而不是选择它们并引用ActiveCell。观看

您似乎正在尝试制作一个唯一的标识符(ID)来引用您的记录。但是您要将1添加到下面的空白单元格中:ActiveCell.Value = ActiveCell.Offset( 1 , 0).Value + 1相反,您应该将1添加到ActiveCell.Value = ActiveCell.Offset( -1 , 0).Value + 1上方的单元格的值上

Sheet1.Activate

With Range("B2").End(xlDown).Offset(1, 0)
    .Value = .Offset(-1, 0).Value + 1
    .Offset(0, 1).Value = txtSifraOsobe.Value
    .Offset(0, 2).Value = txtImeIPrezime.Value
    .Offset(0, 3).Value = txtAdresa.Value
    .Offset(0, 4).Value = cboGrad.Value
    .Offset(0, 5).Value = cboDrzava.Value
    .Offset(0, 7).Value = txtDatumRodjenja.Value
End With

关于excel - xlDown无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41077505/

10-10 09:38