VBA跳过单元格如果他们有数据并转到下一个空白?

时间:2014-11-06 23:32:52

标签: excel vba excel-vba stock

请原谅我,如果我为此工作太过无聊,甚至没有任何意义。我正在为自己和我的一个朋友制作数据库。 (这些将是两个不合并的数据库。)我不是从头开始,所以这可能是我的一个问题。我正在使用我的工作时间表(不要担心,它只是一份副本)来学习/测试"我想用VBA做什么。基本上我想要做的是获取单元格的信息(值?)" A3:D3" &安培; " E2"并将这些值放入相应的列中。但我不希望它在下一个单元格中过度纠正代码。这就是我放入第10行和第11行的原因。它仍然不喜欢它。

另外,我想知道我是否可以得到这方面的帮助......如果信息可能是日期敏感的?即你在今天的小时输入,并记住你忘了记录昨天的小时,所以你输入日期在" DateToday"或A3框,它将信息记录在专用于该日期的行中,或者您跳过两天的工作并将日期放入,VBA会跳过两行?

这两个不同的要求吗?要么可能吗?任何帮助深表感谢!!提前谢谢!

    Private Sub CommandButton1_Click()
Dim DateToday As Date, TimeIn As Integer, LunchLength As Integer, TimeOut As Integer, HoursToday As Integer
    Worksheets("sheet1").Select
    DateToday = Range("A3")
    TimeIn = Range("B3")
    LunchLength = Range("C3")
    TimeOut = Range("D3")
    HoursToday = Range("E2")
    Worksheets("sheet1").Range("A141").Select
    If Worksheets("sheet1").Range("A141").Offset(1, 0) <> "" Then
    Worksheets("sheet1").Range("A141").End(x1Down).Select
    End If
    ActiveCell.Value = TimeIn
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = LunchLength
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = TimeOut
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = HoursToday
    Worksheets("sheet1").Range("B2:D2").ClearContents
    ThisWorkbook.Save
    Worksheets("sheet1").Range("B2").Select


End Sub

最后一节&#34; Worksheets("sheet1").Range("B2").Select&#34;更适合我的第二个项目,但对此也很好。除了我和我的朋友将输入部件号,定义,部件条件和其他内容之外,第二个项目将非常类似于此项目。再一次,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

未测试:

Private Sub CommandButton1_Click()
Dim DateToday As Date, TimeIn As Integer, LunchLength As Integer
Dim TimeOut As Integer, HoursToday As Integer, sht as WorkSheet

    Set sht = ThisWorkbook.Worksheets("sheet1")

    DateToday = sht.Range("A3")
    TimeIn = sht.Range("B3")
    LunchLength = sht.Range("C3")
    TimeOut = sht.Range("D3")
    HoursToday = sht.Range("E2")

    With sht.Cells(Rows.Count,1).End(xlUp).Offset(1,0).EntireRow
        .Cells(1).Value = TimeIn
        .Cells(2).Value = LunchLength
        .Cells(3).Value = TimeOut
        .Cells(4).Value = HoursToday
    End With

    sht.Range("B2:D2").ClearContents
    ThisWorkbook.Save
    sht.Range("B2").Select
End Sub

注意:通常在VBA工作时no need to Select anything