VBA로 곱하기

Bethany Minor

원하는 결과를 제공하기 위해 3 개의 다른 값을 곱해야하는 양식이 있습니다. 다음과 같습니다.

Private Sub cmdAdd_Click()

Dim emptyRow As Long
Dim ctl As Control
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim E As Integer
Dim Answer As Integer
Dim Answer2 As Integer
Dim Answer3 As Integer



If Me.txtNoTotalAff.Value = "" Then
    MsgBox "Please enter the Total Number of Affiliates", vbExclamation, "ROI"
    Me.txtNoTotalAff.SetFocus
    Exit Sub
End If
If Me.lstClientName.Value = "" Then
    MsgBox "Please enter Client Name", vbExclamation, "ROI"
    Me.lstClientName.SetFocus
    Exit Sub
End If
'Determine Empty Row
 emptyRow = Worksheets("ROI").Range("A1").CurrentRegion.Rows.Count
 A = txtNoTotalAff.Value
 B = txtActiveAff.Value
 C = txtAvgTraffic.Value
 D = txtConvRate.Value
 E = txtAOV.Value

 Answer = A * B
 Answer2 = Answer * C
 Answer3 = (Answer2 * D) * E

 'Transfer Information
 With Worksheets("ROI").Range("A1")
.Offset(emptyRow, 0).Value = lstClientName.Value
.Offset(emptyRow, 1).Value = txtNoTotalAff.Value
.Offset(emptyRow, 2).Value = txtActiveAff.Value
.Offset(emptyRow, 3).Value = Answer
.Offset(emptyRow, 4).Value = txtAvgTraffic.Value
.Offset(emptyRow, 5).Value = Answer2
.Offset(emptyRow, 6).Value = txtConvRate.Value
.Offset(emptyRow, 7).Value = txtAOV.Value
.Offset(emptyRow, 8).Value = Answer3
.Offset(emptyRow, 9).Value = txtAffName.Value

 End With

'Clear the Form
For Each ctl In Me.Controls
    If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
    ctl.Value = ""
    ElseIf TypeName(ctl) = "CheckBox" Then
    ctl.Value = False
    End If
Next ctl
 End Sub

변수를 사용하고 각각을 계산하도록하거나 원하는 결과를 얻기 위해 답을 직접 사용하고 싶습니다.

어떻게하면 되나요?

피지

나는 당신이 숫자로 된 텍스트 문자열을 곱하려고하기 때문에 오류가 있다고 가정합니다. 숫자로 변환해야합니다. 사용하는 숫자의 종류에 따라 Long 유형 또는 Double을 사용합니다. 정수는 텍스트 상자에 다양한 사용자 입력으로 오류가있을 가능성이 더 큽니다. Integer에 가장 가깝기 때문에이 예제에서는 Long을 사용할 것입니다.하지만 숫자가 매우 커지거나 소수를 사용하는 경우 Double로 전환합니다.

귀하의 코드에 대해 몇 가지 다른 사항을 수정했습니다. 주로 텍스트 상자의 .Text 속성을 가져 와서 Long 변수로 변환합니다. 또한 주소 선언에서 A1에서 오프셋을 사용하는 대신 '.Cells (Row, Col)'을 사용하여 주소를 선언하면됩니다. 일반적으로 당신의 논리는 옳은 것 같습니다.

이것을 시도하고 오류가 있는지 확인하십시오.

암호:

Private Sub cmdAdd_Click()

Dim emptyRow As Long
Dim ctl As Control
Dim A As Long, B As Long, C As Long, D As Long, E As Long
Dim Answer As Long, Answer2 As Long, Answer3 As Long

    'Validation
    If txtNoTotalAff.Text= "" Then
        MsgBox ("Please enter the Total Number of Affiliates", vbExclamation, "ROI")
        txtNoTotalAff.SetFocus
        Exit Sub
    End If

    If Me.lstClientName.Value = "" Then
        MsgBox ("Please enter Client Name", vbExclamation, "ROI")
        lstClientName.SetFocus
        Exit Sub
    End If

    'Determine Empty Row
    emptyRow = Sheets("ROI").Range("A" & Rows.count).End(xlUp).row + 1
    A = CLng(txtNoTotalAff.Text)
    B = CLng(txtActiveAff.Text)
    C = CLng(txtAvgTraffic.Text)
    D = CLng(txtConvRate.Text)
    E = CLng(txtAOV.Text)

    Answer = A * B
    Answer2 = Answer * C
    Answer3 = (Answer2 * D) * E

    'Transfer Information
    Sheets("ROI").Cells(emptyRow, 1) = lstClientName.Text     'Col "A"
    Sheets("ROI").Cells(emptyRow, 2 ) = txtNoTotalAff.Text    'Col "B"
    Sheets("ROI").Cells(emptyRow, 3) = txtActiveAff.Text      'Col "C"
    Sheets("ROI").Cells(emptyRow, 4) = Answer                 'Col "D"
    Sheets("ROI").Cells(emptyRow, 5) = txtAvgTraffic.Text     'Col "E"
    Sheets("ROI").Cells(emptyRow, 6) = Answer2                'Col "F"
    Sheets("ROI").Cells(emptyRow, 7) = txtConvRate.Text       'Col "G"
    Sheets("ROI").Cells(emptyRow, 8) = txtAOV.Text            'Col "H"
    Sheets("ROI").Cells(emptyRow, 9) = Answer3                'Col "I"
    Sheets("ROI").Cells(emptyRow, 10) = txtAffName.Value      'Col "J"

    'Clear the Form
    For Each ctl In Me.Controls
        If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
        ctl.Value = ""
        ElseIf TypeName(ctl) = "CheckBox" Then
        ctl.Value = False
        End If
    Next ctl
End Sub

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

VBA : 루프 내에서 분수로 곱하기

분류에서Dev

오버플로 오류 VBA : 백분율 곱하기 및 나누기

분류에서Dev

두 목록을 합계로 곱하기

분류에서Dev

C ++ float를 분수로 곱하기

분류에서Dev

두 xts 객체를 서로 곱하기

분류에서Dev

각도 업로드 곱하기 파일

분류에서Dev

Django로 데카르트 곱 피하기

분류에서Dev

Python 프로세스 곱하기 파일

분류에서Dev

두 함수를 서로 곱하기 (matlab)

분류에서Dev

비율로 시간 곱하기

분류에서Dev

XSL, SUM 및 조건으로 곱하기

분류에서Dev

행렬을 블록으로 곱하기

분류에서Dev

Jquery로 데이터 값 곱하기

분류에서Dev

다른 값으로 CASE 행 곱하기

분류에서Dev

GOTO 및 곱하기 오류가있는 VBA 오류 처리기

분류에서Dev

VBA에서 변형 추가 또는 곱하기

분류에서Dev

VBA에서 변형 추가 또는 곱하기

분류에서Dev

VBA에서 변형 추가 또는 곱하기

분류에서Dev

두 배열 곱하기-로컬 소수 구분 기호 문제

분류에서Dev

SQL의 필드 값을 기반으로 필드 곱하기

분류에서Dev

날짜를 기준으로 Google 시트 합계 및 곱하기

분류에서Dev

다른 열을 기준으로 열의 값 곱하기

분류에서Dev

jquery의 입력 값으로 선택기 곱하기

분류에서Dev

같은 크기의 행렬로 다차원 배열 곱하기

분류에서Dev

동일한 키를 기반으로 배열 값을 곱하기

분류에서Dev

C에서 2 ^ 2의 쓰기로 거듭 제곱하기

분류에서Dev

서로 다른 크기의 두 행렬에 locb 곱하기

분류에서Dev

VBA Excel-계산 기능-곱하기 전에 추가하는 방법

분류에서Dev

자바 스크립트로 곱하기 / 합산하는 방법