2014-10-29 192 views
0
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中。Excel VBA:如何在每个按钮点击中逐一增加行数

+0

我可以给你答案,但我希望你先试试它;)[这是](http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba)将让你开始吧! – 2014-10-29 09:42:43

+0

我尝试使用for循环,但总是在同一行填充数据 – user1227493 2014-10-29 09:50:48

+0

是否在最后一行添加了“+ 1”? – 2014-10-29 09:51:10

回答

1

1没有必要使用变量i。只需找到如HERE所示的最后一行,其中包含数据并将1添加到下一行可用行中。

2不要声明行变量为Integerxl2007+1048576行。使用Long

3您不必使用.Select写入表单。通过完全限定对象来直接执行操作。你可能想看到THIS

这是你正在尝试(未测试)?

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

另一种方法是使用UsedRange财产。它获取单个工作表中内容的当前单元格范围。确切的属性添加到您现有的代码应该是这样的:

由于只有填写表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 

看看你怎么走!

如果您必须将第一行空白,那么我们来看看添加一些额外的代码以适应这种情况。

+0

- 1用于暗示'usedrange'。请检查我给出的关于为什么不应该使用'UsedRange'的链接。 – 2014-10-29 10:13:14

相关问题