프로시저를 작성하고 국어 수학 영어에 5를 넣고 등록을 누르니 평균이 185가 나오는데 왜 그런 지를 모르겠어요
또한 체크상자에 체크를 해도 성별 옆 단추에 남학생이 안 뜨는 이유도 모르겠습니다
Private Sub cmd성별_Click()
If chk성별 = True Then
chk성별.Caption = "남학생"
Else
chk성별.Caption = "여학생"
End If
End Sub
보라색 부분 cmd성별이 아니라 chk성별로 작성해야 합니다.
체크박스 클릭 했을 때 변경 되는 부분이니까요..
빨간색으로 표시된 부분 cmd성별 로 변경 하셔야 합니다.
표시하고자 하는 곳이 커맨드박스이므로 cmd성별로 지정하셔야 합니다.
Private Sub chk성별_Click()
If chk성별 = True Then
cmd성별.Caption = "남학생"
Else
cmd성별.Caption = "여학생"
End If
End Sub
Private Sub cmd등록_Click()
행 = [b3].CurrentRegion.Rows.Count + 3
Cells(행, 2) = 행 - 3 & txt이름
Cells(행, 3) = txt국어
Cells(행, 4) = txt영어
Cells(행, 5) = txt수학
Cells(행, 6) = Format(((txt국어.Value + txt영어.Value + txt수학.Value) / 3), "0.00")
아래와 같이 수정하세요.
Cells(행, 2) = 행 - 3 & txt이름
Cells(행, 3) = txt국어.Value
Cells(행, 4) = txt영어.Value
Cells(행, 5) = txt수학.Value
Cells(행, 6) = Format(((Val(txt국어) + Val(txt영어) + Val(txt수학)) / 3), "0.00")
일반 적으로 값을 받으면 문자 값으로 받게 됩니다.
간혹 프로그램 상에서 판단하여 숫자는 숫자로 받는 경우도 있긴 합니다.
되도록이면 해당 값이 숫자인지 문자인지를 확실 하게 해 주는 것이 좋겠죠.
(txt국어.Value + txt영어.Value + txt수학.Value)/3
와 같이 입력하면
국어 80
영어 90
수학 100
으로 입력한 경우
8090100 으로 값을 연결해서 표시하게 됩니다.
이 값을 3으로 나누면 2696700 로 표시가 되네요.
컨토롤명.value 라는 해당 컨트롤의 값을 뜻하는 것인데 + 가 연결로 처리가 되어 그렇게 표시되는 것입니다.
val 은 받은 값을 숫자로 나타내기 위해 사용하는 것으로
숫자값으로 변경 된 후에는
80+90+100 으로 계산한 후 /3 을 수행 할 수 있는 것입니다.
아래 설명을 참고해 주세요.
val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.
하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다.
문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.
만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.
물론 사용 하셔도 되구요.
지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.
value 는 값을 뜻하는 것입니다.
VALUE를 붙이지 않아도 정상적으로 실행된다면 붙이지 않아도 됩니다.
폼에 입력된 데이터를 워크시트에 입력할 때 VALUE를 붙이면 숫자는 수치 데이터, 텍스트는 텍스트 형식, 날짜는 날짜 형식으로 입력되는데, 붙이지 않으면 모두 텍스트 형식으로 입력 되기때문에 데이터 형식을 맞춰주는 작업을 해야 합니다.
실제 시험에서 지시사항에 별다른 설명이 없었다면 둘 중 어느것을 사용하시든 정확한 결과가 나오면 정답으로 인정 될 것 입니다.
프로시저에서 사용하는 함수와 엑셀에서 사용하는 함수가 달라 작동되지 않을 수 있으므로 잘 확인 한 후 사용하세요.
좋은 하루 되세요.
-
관리자2022-11-11 12:08:30
Private Sub cmd성별_Click()
If chk성별 = True Then
chk성별.Caption = "남학생"
Else
chk성별.Caption = "여학생"
End If
End Sub
보라색 부분 cmd성별이 아니라 chk성별로 작성해야 합니다.
체크박스 클릭 했을 때 변경 되는 부분이니까요..
빨간색으로 표시된 부분 cmd성별 로 변경 하셔야 합니다.
표시하고자 하는 곳이 커맨드박스이므로 cmd성별로 지정하셔야 합니다.
Private Sub chk성별_Click()
If chk성별 = True Then
cmd성별.Caption = "남학생"
Else
cmd성별.Caption = "여학생"
End If
End Sub
Private Sub cmd등록_Click()
행 = [b3].CurrentRegion.Rows.Count + 3
Cells(행, 2) = 행 - 3 & txt이름
Cells(행, 3) = txt국어
Cells(행, 4) = txt영어
Cells(행, 5) = txt수학
Cells(행, 6) = Format(((txt국어.Value + txt영어.Value + txt수학.Value) / 3), "0.00")
아래와 같이 수정하세요.
Cells(행, 2) = 행 - 3 & txt이름
Cells(행, 3) = txt국어.Value
Cells(행, 4) = txt영어.Value
Cells(행, 5) = txt수학.Value
Cells(행, 6) = Format(((Val(txt국어) + Val(txt영어) + Val(txt수학)) / 3), "0.00")
일반 적으로 값을 받으면 문자 값으로 받게 됩니다.
간혹 프로그램 상에서 판단하여 숫자는 숫자로 받는 경우도 있긴 합니다.
되도록이면 해당 값이 숫자인지 문자인지를 확실 하게 해 주는 것이 좋겠죠.
(txt국어.Value + txt영어.Value + txt수학.Value)/3
와 같이 입력하면
국어 80
영어 90
수학 100
으로 입력한 경우
8090100 으로 값을 연결해서 표시하게 됩니다.
이 값을 3으로 나누면 2696700 로 표시가 되네요.
컨토롤명.value 라는 해당 컨트롤의 값을 뜻하는 것인데 + 가 연결로 처리가 되어 그렇게 표시되는 것입니다.
val 은 받은 값을 숫자로 나타내기 위해 사용하는 것으로
숫자값으로 변경 된 후에는
80+90+100 으로 계산한 후 /3 을 수행 할 수 있는 것입니다.
아래 설명을 참고해 주세요.
val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.
하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다.문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.
만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.
물론 사용 하셔도 되구요.
지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.value 는 값을 뜻하는 것입니다.
VALUE를 붙이지 않아도 정상적으로 실행된다면 붙이지 않아도 됩니다.
폼에 입력된 데이터를 워크시트에 입력할 때 VALUE를 붙이면 숫자는 수치 데이터, 텍스트는 텍스트 형식, 날짜는 날짜 형식으로 입력되는데, 붙이지 않으면 모두 텍스트 형식으로 입력 되기때문에 데이터 형식을 맞춰주는 작업을 해야 합니다.
실제 시험에서 지시사항에 별다른 설명이 없었다면 둘 중 어느것을 사용하시든 정확한 결과가 나오면 정답으로 인정 될 것 입니다.
프로시저에서 사용하는 함수와 엑셀에서 사용하는 함수가 달라 작동되지 않을 수 있으므로 잘 확인 한 후 사용하세요.
좋은 하루 되세요.