2016-03-22 5 views
0

Так что я пытаюсь кодировать форму для архивирования/отслеживания Excel VBA для моей работы, и я очень новичок в excel vba. Любая помощь приветствуется. По сути, я хочу, чтобы моя пользовательская форма вводила дату выставления счета в нижней таблице, а затем берет сумму выбранных частей (A1-A19) и вводит сумму в ближайшую, пустую ячейку слева от даты выставления счета. Если это первый биллинговый цикл, то я просто хочу назвать сумму в долларах в разделе «Общее общее участие» и поставить это значение справа от даты выставления счета. Прикреплены мои фрагменты листа Excel и пользовательская форма. Большое спасибо сообществу!Excel VBA Billing 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 

ответ

0

1) Вам не нужна петля для этого 2) У вас нет никакой логики, которая проверяет, если UserForm Флажки устанавливаются истинным или ложным, а затем что делать, если они истинны/ложны. 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 
+0

примечание некоторые из моих направлений клеток в приведенном выше примере кода неверен. отрегулировать соответственно –

Смежные вопросы