VBA 조회 값 및 메시지 상자의 보고서 및 동일한 행의 셀에서 값 변경

Bodoble

사용자 양식이 특정 표본 ID (열 AV)에 대한 워크 시트를 검색하고 열 (T, S 및 W)의 항목을보고하도록하려고합니다. 가급적이면 이러한 항목은 환자 정보 확인 (명령 버튼)을 클릭 한 후 메시지 상자에 표시됩니다. 이것이 물리적 테스트 항목과 일치하면 사용자는 AS 열의 정보를 업데이트하는 Combobox에서 테스트 결과를 업데이트해야합니다.

사용할 올바른 코딩을 찾는 데 어려움이 있습니다. 처음에는 텍스트 상자를 사용하는 대신 확인 된 환자 정보 팝업을 메시지 상자로 사용하려고 생각했지만 VBA 코딩에 일치 및 색인 기능을 입력하는 방법을 잘 모르겠습니다. 그리고이 시나리오에서 일치 / 인덱스를 사용하는 방법도 모르겠습니다. Vlookup은 오른쪽으로 검색 할 때만 작동한다는 것을 알고 있습니다.

VBA 사용자 양식 및 코딩 https://www.filedropper.com/dummytest가 포함 된 예제 통합 문서

다음은 해당 사용자 양식에 대한 전체 코드입니다.

Private Sub CBResult_Enter()
Me.CBResult.Clear
Me.CBResult.AddItem "Detected/Positive"
Me.CBResult.AddItem "Not detected/Negative"
Me.CBResult.AddItem "Inconclusive/Undetermined/Invalid/Equivocal"
End Sub

Private Sub CmdB_Results_Verify_Click()

Dim specimen_id As String
specimen_id = Trim(Txt_Results_SpecimenID.Text)

lastrow = Worksheets("Entry").Cells(Rows.Count, "AV").End(xlUp).Row

For i = 2 To lastrow
If Worksheets("Entry").Cells(i, 1).Value = specimen_id Then
Txt_Results_FName = Worksheets("Entry").Cells(i, "T").Value
Txt_Results_LName = Worksheets("Entry").Cells(i, "S").Value
Txt_Results_DOB = Worksheets("Entry").Cells(i, "W").Value

End If
Next

End Sub

Private Sub CmdBResult_Save_Click()

'copy values to sheet.
Dim Result As String
Result = CBResult.Value
lastrow = Worksheets("Entry").Cells(Rows.Count, "AV").End(xlUp).Row

For i = 2 To lastrow
If Worksheets("Entry").Cells(i, 1).Value = Txt_Results_specimen_id.Value Then
Worksheets("Entry").Cells("AS").Value = CBResult.Value

'Clear input Controls.

Me.CBResult.Value = ""
Txt_Results_FName.Value = ""
Txt_Results_LName.Value = ""
Txt_Results_DOB.Value = ""

End Sub

Private Sub CmdB_Results_Close_Click()
'Close "ResultsEntry"
Unload Me
End Sub

여기에있는 텍스트 상자가 적을수록 좋습니다.

Simon

내가 원하는 것을 수행하도록 코드를 업데이트했습니다. 전체 코드를 붙여 넣어 전체 코드를 사용자 양식 코드에 다시 넣을 수 있습니다.

참고 :

  • 숫자 값만 허용하도록 표본 ID에 추가했습니다. 이는 문자열이면 표본 ID가 숫자이므로 일치하는 항목을 찾지 못하기 때문입니다. VBA에서는 숫자와 문자열이 다르게 처리됩니다.
  • 당신은 당신의 잠수함을 다음과 같이 가지고 있었기 때문에 저장 버튼을 업데이트하지 않았습니다 (작동 할 때) Private Sub CmdBResult_Save_Click().Private Sub CmdB_Results_Save_Click()
  • 특정 이벤트에 대한 메시지 상자를 추가했습니다. 그들이 말하는 것을 분명히 편집하거나 원하지 않으면 제거 할 수 있습니다.
  • 나는 Application.Match반복하는 대신 일치 하는 것을 찾았습니다. 업데이트해야하는 일치 항목이 하나만있는 경우에만 작동합니다. 어떤 이유로 중복을 찾아야하는 경우 .Find또는 루프 를 사용하도록 변경해야합니다 .
  • FindResult표본 ID를 두 번 찾을 필요가 없도록 공용 변수로 입력 했습니다 (한 번은 환자 세부 정보를 얻고 다시 테스트 결과를 업데이트하기 위해).

문제가 있으면 알려주세요. 작동해야합니다. 나는 그것을 모두 테스트했습니다.

Public FindResult As Double

Private Sub CBResult_Enter()
Me.CBResult.Clear
Me.CBResult.AddItem "Detected/Positive"
Me.CBResult.AddItem "Not detected/Negative"
Me.CBResult.AddItem "Inconclusive/Undetermined/Invalid/Equivocal"
End Sub

Private Sub CmdB_Results_Verify_Click()

Dim specimen_id As Double

'Check something has been enetered in SpecimenID
If Len(Txt_Results_SpecimenID.Text) = 0 Then
    Exit Sub
End If
FindResult = 0
specimen_id = Txt_Results_SpecimenID.Text

On Error Resume Next
FindResult = Application.Match(specimen_id, Sheets("Entry").Range("AV:AV"), 0) 'Find the matching ID

If FindResult > 0 Then 'FindResult will be greater than 0 if match found. It will be the row that it found it on.
    Txt_Results_FName.Text = Worksheets("Entry").Range("T" & FindResult).Value
    Txt_Results_LName.Text = Worksheets("Entry").Range("S" & FindResult).Value
    Txt_Results_DOB.Text = Worksheets("Entry").Range("W" & FindResult).Value
Else
    MsgBox "No matching Specimen ID was found.", vbInformation, "No Result"
    Me.CBResult.Value = ""
    Txt_Results_FName.Value = ""
    Txt_Results_LName.Value = ""
    Txt_Results_DOB.Value = ""
End If

End Sub

Private Sub CmdB_Results_Save_Click()

'copy values to sheet.
Dim Result As String

If Len(Txt_Results_SpecimenID.Text) = 0 Then
    MsgBox "There is no Specimen ID entered. The patient info cannot be updated without this identifier.", vbExclamation, "Please enter Specimen ID"
    Exit Sub
ElseIf FindResult = 0 Then
    MsgBox "The Specimen ID has not been searched for. Please do this before trying to update the patient info.", vbExclamation, "Please enter Specimen ID"
    Exit Sub
ElseIf CBResult.Value = "" Then
    MsgBox "Please select a test result from the options.", vbExclamation, "Select a test result"
    Exit Sub
End If


Worksheets("Entry").Range("AS" & FindResult).Value = CBResult.Value

'Clear input Controls.
Me.CBResult.Value = ""
Txt_Results_FName.Value = ""
Txt_Results_LName.Value = ""
Txt_Results_DOB.Value = ""

End Sub

Private Sub CmdB_Results_Close_Click()

'Close "ResultsEntry"
Unload Me

End Sub

Private Sub Txt_Results_SpecimenID_Change()

Dim ID As String
ID = Txt_Results_SpecimenID.Text

'This will only allow numbers to be entered into the Specimen ID box
If Not IsNumeric(Right(ID, 1)) Then
    If Len(ID) = 0 Then Exit Sub
    Txt_Results_SpecimenID.Text = Left(ID, Len(ID) - 1)
End If

End Sub

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

여러 조건 및 조회를 기반으로 Google 시트의 셀 값 변경

분류에서Dev

VBA에서 셀 참조를 지정하지 않고 Excel 표 셀의 값을 변경하는 방법

분류에서Dev

열의 셀 값에 대한 IF 및 OR 조합

분류에서Dev

SQLite 행 복사 및 하나의 쿼리에서 두 값 변경

분류에서Dev

워크 시트의 변경 사항 추적, 활성 셀 행에서 활성 셀이 아닌 셀 복사 및 값 기록

분류에서Dev

PDO : 값 조회 및 유사한 값의 배열 반환

분류에서Dev

ASP 및 C #의 값에 따라 테이블 셀 색상 변경

분류에서Dev

행의 모든 셀에 동일한 값이있는 경우 datagridview에서 전체 행 삭제 시도

분류에서Dev

Excel에서 한 열의 시간 및 숫자 값 정렬 및 순위 지정

분류에서Dev

Power BI에서 동일한 값을 보여주는 모든 행 및 행의 합계

분류에서Dev

한 시트의 여러 행 및 열에서 다른 시트로 셀 값을 복사하는 방법

분류에서Dev

Excel : 표에서 일치하는 셀을 조회하고 행의 첫 번째 셀 값을 반환합니다.

분류에서Dev

동일한 열에서 값의 차이 순위 및 찾기

분류에서Dev

한 열의 값 조회 및 일치하는 경우 다른 열의 값 추가 Google Script Google Sheets

분류에서Dev

VBA에서 셀 값의 일부 제거

분류에서Dev

행에서 고유 값의 발생 횟수 및 표시

분류에서Dev

왼쪽 및 상단 값을 픽셀에서 백분율로 변경 한 후 요소 위치 변경

분류에서Dev

다른 셀의 문자열에서 한 셀의 값 제거 (VBA)

분류에서Dev

Excel VBA를 사용하여 값을 복사 및 조작하고 동일한 시트에서 결과를 더 낮게 유지 하시겠습니까?

분류에서Dev

r에서 SF 객체의 경도 및 위도 값 변경

분류에서Dev

VBA에서 행 범위 2:60 및 열 범위 D : H에있는 셀의 최대 값을 얻는 방법

분류에서Dev

범위의 셀 값이 변경되면 자동 실행 Excel vba

분류에서Dev

EXCEL VBA : 다른 셀의 값에 따라 NUMBER 서식 변경

분류에서Dev

위의 셀에 동일한 값이있는 경우 셀에 대한 조건부 서식

분류에서Dev

위의 셀에 동일한 값이있는 경우 셀에 대한 조건부 서식

분류에서Dev

PHP : DB에서 값 조회 및 데이터 삽입 전 변환

분류에서Dev

Excel vba의 동일한 case 문에서 누락 및 부울 값을 사용하는 방법

분류에서Dev

첫 번째 셀의 값이 변경 될 때 행의 셀 범위를 복사하고 다른 시트에 붙여 넣지 만 동일한 행 / 범위에 붙여 넣는 Excel VBA 코드

분류에서Dev

텍스트 상자에 올바른 값이 있으면 onclick 버튼, 메시지가 아닌 경우 동일한 페이지의 메시지 경고

Related 관련 기사

  1. 1

    여러 조건 및 조회를 기반으로 Google 시트의 셀 값 변경

  2. 2

    VBA에서 셀 참조를 지정하지 않고 Excel 표 셀의 값을 변경하는 방법

  3. 3

    열의 셀 값에 대한 IF 및 OR 조합

  4. 4

    SQLite 행 복사 및 하나의 쿼리에서 두 값 변경

  5. 5

    워크 시트의 변경 사항 추적, 활성 셀 행에서 활성 셀이 아닌 셀 복사 및 값 기록

  6. 6

    PDO : 값 조회 및 유사한 값의 배열 반환

  7. 7

    ASP 및 C #의 값에 따라 테이블 셀 색상 변경

  8. 8

    행의 모든 셀에 동일한 값이있는 경우 datagridview에서 전체 행 삭제 시도

  9. 9

    Excel에서 한 열의 시간 및 숫자 값 정렬 및 순위 지정

  10. 10

    Power BI에서 동일한 값을 보여주는 모든 행 및 행의 합계

  11. 11

    한 시트의 여러 행 및 열에서 다른 시트로 셀 값을 복사하는 방법

  12. 12

    Excel : 표에서 일치하는 셀을 조회하고 행의 첫 번째 셀 값을 반환합니다.

  13. 13

    동일한 열에서 값의 차이 순위 및 찾기

  14. 14

    한 열의 값 조회 및 일치하는 경우 다른 열의 값 추가 Google Script Google Sheets

  15. 15

    VBA에서 셀 값의 일부 제거

  16. 16

    행에서 고유 값의 발생 횟수 및 표시

  17. 17

    왼쪽 및 상단 값을 픽셀에서 백분율로 변경 한 후 요소 위치 변경

  18. 18

    다른 셀의 문자열에서 한 셀의 값 제거 (VBA)

  19. 19

    Excel VBA를 사용하여 값을 복사 및 조작하고 동일한 시트에서 결과를 더 낮게 유지 하시겠습니까?

  20. 20

    r에서 SF 객체의 경도 및 위도 값 변경

  21. 21

    VBA에서 행 범위 2:60 및 열 범위 D : H에있는 셀의 최대 값을 얻는 방법

  22. 22

    범위의 셀 값이 변경되면 자동 실행 Excel vba

  23. 23

    EXCEL VBA : 다른 셀의 값에 따라 NUMBER 서식 변경

  24. 24

    위의 셀에 동일한 값이있는 경우 셀에 대한 조건부 서식

  25. 25

    위의 셀에 동일한 값이있는 경우 셀에 대한 조건부 서식

  26. 26

    PHP : DB에서 값 조회 및 데이터 삽입 전 변환

  27. 27

    Excel vba의 동일한 case 문에서 누락 및 부울 값을 사용하는 방법

  28. 28

    첫 번째 셀의 값이 변경 될 때 행의 셀 범위를 복사하고 다른 시트에 붙여 넣지 만 동일한 행 / 범위에 붙여 넣는 Excel VBA 코드

  29. 29

    텍스트 상자에 올바른 값이 있으면 onclick 버튼, 메시지가 아닌 경우 동일한 페이지의 메시지 경고

뜨겁다태그

보관