Public Sub CommandButton1_Click()
Dim Name As String
Dim Age As Integer
Dim Row As Integer
Dim i As Integer
i = 2
Row = i
If (Sheet1.Range("D10").Value = "") Then
MsgBox ("Enter Value")
Else
Name = Sheet1.Range("D10").Value
Age = Sheet1.Range("D12").Value
Sheet2.Select
Sheet2.Range("A" & Row) = Name
Sheet2.Range("B" & Row) = Age
Sheet1.Range("D10").Value = ""
Sheet1.Range("D12").Value = ""
End If
End Sub
在上面的代码中,我想在每次点击按钮时增加行数。 例如:在Excel第1页(D10)中保存到Sheet2(A2) 当下次点击按钮时,D10的值应保存到A3。
答案 0 :(得分:1)
1
无需使用变量i
。只需找到显示HERE的最后一行,其中包含数据,并为下一个可用行添加1
。
2
不要将行变量声明为Integer
。 xl2007+
有1048576
行。使用Long
。
3
您不必使用.Select
来撰写工作表。通过完全限定对象来直接执行操作。您可能希望看到THIS
这是你正在尝试的( UNTESTED )?
Public Sub CommandButton1_Click()
Dim Name As String
Dim Age As Integer
Dim lRow As Long
With Sheet2
lRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
If Len(Trim(Sheet1.Range("D10").Value)) = 0 Then
MsgBox ("Enter Value")
Else
Name = Sheet1.Range("D10").Value
Age = Sheet1.Range("D12").Value
.Range("A" & lRow) = Name
.Range("B" & lRow) = Age
Sheet1.Range("D10,D12").ClearContents
End If
End With
End Sub
答案 1 :(得分:-1)
另一种方法是使用 UsedRange 属性。它获取单个工作表中包含内容的当前单元格范围。要添加到现有代码中的确切属性如下所示:
Sheet2.UsedRange.Rows.Count
在工作表2中只填写了一行,您将获得1的计数,这对计数的+1不起作用(它将继续插入第2行)。将一些内容添加到Sheet 2的第一行,然后尝试以下代码:
Public Sub CommandButton1_Click()
Dim Name As String
Dim Age As Integer
Dim Row As Integer
Dim i As Integer
Row = Sheet2.UsedRange.Rows.Count + 1
If (Sheet1.Range("D10").Value = "") Then
MsgBox ("Enter Value")
Else
Name = Sheet1.Range("D10").Value
Age = Sheet1.Range("D12").Value
Sheet2.Select
Sheet2.Range("A" & Row) = Name
Sheet2.Range("B" & Row) = Age
Sheet1.Range("D10").Value = "test"
Sheet1.Range("D12").Value = ""
End If
End Sub
看你怎么样!
如果你必须将第一行留空,那么让我们看一下添加一些额外的代码以适应这一点。