사람들이 내 첫 번째 문제를 해결하는 방법을 찾은 후에 새로운 질문을 열었습니다. 이제 새로운 문제가 생깁니다. 아래의 "장치 초기화"페이지에서 코딩을 찾을 수 있습니다. 코드의 마지막 부분에 대한 아이디어는 B7 : b 및 E7 : E에서 열 (텍스트 값)을 추가하고 J7 : J 열에 표시하는 것입니다. 따라서 Photo가 B에 입력되고 Pass가 Column E에 입력되면 결과는 Column J의 Photopass가됩니다. 매크로 명령을 통해 실행하면 원본 코드가 제대로 작동합니다. 문제는 기존의 코드 중 일부에 추가하려고 시도했는데 이제는 정보가 모든 셀에 입력 될 때 전체 프로그램이 중단됩니다. 프로그램이 응답하지 않게되면 시스템이 종료되고 다시 시작됩니다. 나는 코드 나 디버그 메시지를 얻지 못한다. 다음은 페이지의 전체 코드입니다. 당신은 내가 검사 파일을 전송하고 필요한 경우도 자세한 정보를 제공 할 수 있습니다 더 이상 정보가 필요하면 워크 시트 이벤트 VBA 코드를 변경하면 Excel 2013이 충돌 함
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And UCase(Target.Value) = "YES" Then
Sheets("MESSAGE CHANGES").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 3) = Sheets("INITIATING DEVICES").Cells(Target.Row, 1).Resize(, 3).Value
Application.Goto Sheets("MESSAGE CHANGES").Cells(Rows.Count, 1).End(xlUp).Offset(, 3)
End If
If Target.Column = 6 And UCase(Target.Value) = "YES" Then
Sheets("DEVICE NOTES").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 3) = Sheets("INITIATING DEVICES").Cells(Target.Row, 1).Resize(, 3).Value
Application.Goto Sheets("DEVICE NOTES").Cells(Rows.Count, 1).End(xlUp).Offset(, 3)
End If
'(replace if new code fails)If Target.Column = 5 And UCase(Target.Value) = "FAIL" Or Target.Column = 5 And UCase(Target.Value) = "DAMAGED" Then
'(replace if new codes fails)Sheets("FAILED DEVICES").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 3) = Sheets("INITIATING DEVICES").Cells(Target.Row, 1).Resize(, 3).Value
If Target.Column = 5 And UCase(Target.Value) = "FAIL" Or UCase(Target.Value) = "DAMAGED" Then
Application.EnableEvents = False
Sheets("FAILED DEVICES").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 5) = Sheets("INITIATING DEVICES").Cells(Target.Row, 1).Resize(, 5).Value
Sheets("FAILED DEVICES").Cells(Rows.Count, 1).End(xlUp).Offset(, 5) = Sheets("INITIATING DEVICES").Cells(Target.Row, 11).Value
Application.EnableEvents = True
End If
'code that will place date/time when value is selcted in E
If Not Intersect(Target, Range("E:E")) Is Nothing Then
Range("I" & Target.Row).Value = Now
End If
Dim wb As Workbook
Dim ws As Worksheet
Dim lastRow As Long
Set wb = ThisWorkbook
Set ws = wb.Sheets("INITIATING DEVICES")
lastRow = ws.Range("B" & ws.Rows.Count).End(xlUp).Row
ws.Range("J7:J" & lastRow).Value = Evaluate("=B7:B" & lastRow & "&E7:E" & lastRow)
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With Sheets("INITIATING DEVICES")
.PageSetup.PrintArea = .Range("A1:H" & .Cells(Rows.Count, 1).End(xlUp).Row).Address
End With
End Sub
, 당신은 내게 줄 수있는 모든 도움을 주셔서 감사합니다. 나는 무언가를 엉망으로 만들 것이라고 확신하기 때문에 충돌이 계속 발생합니다. 아직도 여기에서 배우기.
또는 코드를 실행하기 위해 워크 시트의 단추를 사용하여 변경 이벤트를 사용해야하는지 여부를 고려하십시오. –
좀 더 설명해 주시겠습니까? 원본 코드는 단순히 매크로를 실행하는 버튼으로 사용하는 것이 었습니다. 그것은 잘 작동하지만 매크로를 실행하는 사용자/관리자를 얻는 것은 고통이었고 그래서 나는 페이지에서 다른 많은 것들과 같이 스스로 실행하려고했습니다. 한 번 "E"열에 "b"와 "e"의 결과가 "J"에 표시 될 것이라는 아이디어가 있습니다. 답변은 "요약"페이지에서 실시간으로 계산됩니다. 텍스트 값 단어의 합계를 세어 해당 페이지에 표시합니다. 결과가 제거되면 코드가 누락 될 것입니다. 코드는 어디에 있습니까? – Bill