繁体   English   中英

Excel VBA Billing Userform输入数据问题

[英]Excel VBA Billing Userform input data questions

因此,我正在尝试为我的工作编写Excel VBA计费存档/跟踪器表单的代码,而我对excel vba还是很陌生。 任何帮助将非常感激。 本质上,我希望用户窗体在底表上输入开票日期,然后取所选零件的总和(A1-A19),然后将总和输入到输入开票日期左侧的最近的空白单元格中。 如果是第一个计费周期,那么我只想在“总计参与度”中调用美元金额,并将该值放在输入计费日期的右侧。 附件是我对Excel工作表和用户窗体的摘要。 非常感谢社区!

Excel表格

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)您不需要为此循环。2)您没有任何逻辑可以检查userform复选框是否设置为true或false,然后再检查true / false时如何处理。 3)偏移属性将需要在下一个可用行的低位表中放置信息。 可以使用偏移来调整您的标准,这很可能是IF的标准。4)如果第一个计费周期可以将输入定向到下部区域中的第一个位置。 5)看看您是如何将它们转储到电子表格中的,不必在用户窗体中从文本框声明变量。 但是,我确实提到了这一点,因为如果您需要在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM