2013 년에 문제없이 사용 중이었던 매크로가있는 이전 97-2003 Excel 문서가있는 사용자가 있습니다.Excel 2013 및 2016 사이의 매크로와의 호환성 문제가 있습니까
주말에는 2016으로 업그레이드되었으며, 통합 문서의 첫 번째 매크로를 실행하면 일반적으로 값을 표시하는 셀에 #REF가 표시됩니다!
이상하게도 매크로를 실행 한 후 일부 참조를 수동으로 수정 한 다음 매크로를 다시 실행하면 두 번째로 같은 문제가 발생하지 않습니다.
매크로가 이러한 방식으로 작동하도록하는 2016 년 변경 사항이 있는지 궁금합니다.
Sub Update()
'
' Macro1 Macro
' Macro recorded 28/06/2007 by PETER WILSON
''
'
Sheets("DCodes2").Select
Range("C4").Select
Application.CutCopyMode = False
Selection.QueryTable.Refresh BackgroundQuery:=False
Sheets("Summary").Select
Range("D23").Select
Sheets("Sales Inv").Select
Range("a2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("K5").Select
Sheets("Invoices").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Sheets("Job Costs").Select
ActiveWindow.LargeScroll ToRight:=-1
Range("C2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
ActiveWindow.SmallScroll ToRight:=6
Range("N2:T2").Select
Selection.AutoFill Destination:=Range("N2:T284")
Range("N2:T284").Select
Range("N3").Select
Range("J28").Select
Sheets("Job Costs").Select
ActiveWindow.SmallScroll ToRight:=-1
Range("N2:T2").Select
ActiveWindow.LargeScroll ToRight:=-2
ActiveWindow.SmallScroll ToRight:=9
Selection.AutoFilter Field:=1
Range("N2:T2").Select
Selection.Copy
Range("N3").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Sheets("Daybook").Select
Range("B2").Select
Application.CutCopyMode = False
Selection.QueryTable.Refresh BackgroundQuery:=False
Sheets("Job Costs").Select
Range("N2:U2").Select
Sheets("Summary").Select
Range("I8").Select
'
End Sub
I 매크로이해야 할 내용에 명확하지 않다, 그래서 나는 통과하고 사용자에 대한 수동으로 올바른을 시도 주저 :
우리가 실행하는 첫 번째 매크로는 다음과 같습니다 case 내가 뭔가 잘못 됐어. 위의 코드가 각 단계에서 무엇을하는지 결정하기에 Visual Basic에 대해 충분히 알지 못한다.
"매크로가 수행해야하는 작업이 명확하지 않습니다. *"코드가 무엇을하는지 모르는 경우 어떻게 도와 드릴까요? 코드는 완전히 다시 써야 할 가치가있는 것처럼 보이지만 (나쁜 습관이 엉망으로 보이는 것처럼 보이기 때문에) 먼저 코드가 무엇을해야 하는지를 알아야합니다. –
매크로가 10 년 전에 기록 되었기 때문에 IT 부서의 대다수 사용자와 보고서를 사용하는 최종 사용자는 그 당시의 회사가 아니 었습니다. 매크로를 기록한 사용자는 더 이상 사업을하지 않으므로 매크로의 의도가 무엇인지 물어볼 수 없습니다. 최종 사용자는 매크로가 조정할 것으로 예상되는 필드를 알려주고 분명히 오류를 강조 표시 할 수 있지만 내 성명서가 의미하는 바는 매크로가 목표를 달성하는 방법 (예 : 실제 코드). – Eds
나는 당신의 상황을 이해하지만 나는 여기에 그런 문제를 찾을 기회가 없다고 생각합니다. 이 코드는 탁월한 기능, 한 번의 사본 붙여 넣기 작업, 하나의 자동 채우기 작업 (아마도 수식 복사) 및 일부 쿼리 테이블 새로 고침을 수행하지 않습니다. 그게 전부 야. 그러나 당신이 보여준 바로 그 코드 조각으로부터 나가는 것이 잘못되어 가고 있다고 말하는 것은 거의 불가능합니다 (녹음 되었기 때문에 더러워 보입니다. 그러한 질문을하는 것은 잘못된 장소 일 수 있습니다. 또는 수식과 쿼리 테이블을 포함하여 전체 파일을 확인할 수있는 사람을 고용해야합니다. –