Excel VBA Billing Userform输入数据问题

时间:2016-03-22 18:18:06

标签: excel vba excel-vba userform billing

所以我尝试为我的工作编写Excel VBA计费存档/跟踪器表单代码,而且我是excel vba的新手。任何帮助将非常感激。基本上,我希望我的用户表单在底部表格上输入开票日期,然后获取所选部件的总和(A1-A19)并将总和输入到输入开票日期左侧最近的空单元格。如果它是第一个结算周期,那么我只想在Grand Total Engagement中调用美元金额并将该值放在输入结算日期的右侧。附上我的Excel表格和userform的信息。非常感谢社区!

Excel Sheet

BillingArchiveUserform

'Creates "LastRow" variable
If Range("D47").Value = "" Then
LastRow = 47
Else
Main.Range("D46").Select
LastRow = Selection.End(xlDown).Row
End If

i = 47
Do While i <= LastRow
If BillingDate.Value = Range("D" & i).Value Then
If CmBBill.Value = "Yes" Then
'Range("D" & i).Offset( 'resume from here and figure it out, but I want to choose the nearest empty cell to the right of date
'Input project specific information (i.e. the sum of the parts that need to be billed)
Else
i = i + 1
End If
Loop

Cells(LastRow + 1, 4).Value = BillingDate.Value 'Inputs Billing Date

'2. Choose column of ProjectToBill based on value in textbox
Main.Range("E5").Select
LastCol = Selection.End(xlToRight).Column

1 个答案:

答案 0 :(得分:0)

1)你不需要循环 2)您没有任何逻辑来检查userform复选框是设置为true还是false,然后如果它们是true / false则该怎么办。 3)偏移属性需要将信息放在下一个可用行的lowe表中。可以根据您的标准调整偏移量来调整左侧或右侧,这很可能是IF的标准 4)如果是第一个结算周期,您可以将输入定向到下部区域的第一个位置。 5)看看你如何将这些转换成电子表格,不得不在userforms中声明文本框中的变量。但我确实提到过,因为如果你需要在VBA中操作这些信息,可能需要这样做。看起来简单的数学需要完成,所以如果你遇到可能是问题的问题。

这应该让你开始在正确的地方

Private Sub commandbutton_click()

    If CheckBox1.Value = True Then Sheet1.Range("E4").Value = "Wherever you hid the predetermined value"
    If Sheet1.Range("d47").Value = vbNullString Then
        Sheet1.Range("d47").Value = BillingDateTextBox.Value
    Else
        Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = BillingDateTextBox.Value
        Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = "Wherever you hid the predetermined value"
    End If
End Sub