มาโครสร้างใหม่อัตโนมัติไม่ทำงาน

ฉันกำลังพยายามให้ Word เปิดเอกสาร Excel ทุกครั้งที่มีการสร้างเอกสารตามเทมเพลตเฉพาะ

นี่คือมาโครของฉัน

Sub AutoNew()
Dim oExcel As Excel.Application
Dim oWB As Workbook
Set oExcel = New Excel.Application
Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx")
End Sub

เมื่อฉันคลิกสองครั้งที่เทมเพลต มันจะแสดงเอกสารตามเทมเพลตขึ้นมาได้ตามปกติ แต่มาโครไม่ทำงาน

มันแสดงในรายการมาโครในเทมเพลต แต่การพยายามเรียกใช้มันไม่ทำอะไรเลย


person user2113849    schedule 05.06.2013    source แหล่งที่มา
comment
ไฟล์ Excel ของคุณเปิดอยู่ในพื้นหลัง คุณได้ตรวจสอบแล้วว่าอินสแตนซ์ Excel ใหม่ไม่ทำงานซึ่งคุณมองไม่เห็นหรือไม่ หากต้องการดูคุณสามารถเพิ่มบรรทัดนี้: oExcel.Visible = true   -  person Kazimierz Jawor    schedule 05.06.2013
comment
สิ่งเล็กๆ น้อยๆ เสมอ   -  person user2113849    schedule 05.06.2013


คำตอบ (1)


ตามที่ได้กล่าวไว้แล้ว KazJaw ทำให้แอปมองเห็นได้

Sub AutoNew()
  Dim oExcel As Excel.Application
  Dim oWB As Workbook
  Set oExcel = New Excel.Application
  Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx")
  oExcel.Visible = true
End Sub

ข้อเสียคือแอปพลิเคชัน Excel นั้นเปิดตัวเป็นงานใหม่ (ดูที่ tak manager) ในกรณีที่มีการเรียกมาโครอื่น - เอกสารทุกฉบับจะถูกเปิดในงานของตัวเอง

วิธีที่ถูกต้องคือใช้ API เพื่อเรียกใช้เอกสารในแอปพลิเคชันที่ลงทะเบียนไว้ เช่น ที่นี่: http://access.mvps.org/access/api/api0018.htm

หรือวิธีแก้ปัญหาแบบแถวเดียว น่าเกลียด แต่ใช้งานได้ดี:

Shell "cmd.exe /c start D:\a\test.xlsx"

โปรดทราบว่าเทมเพลตที่มีมาโครจะต้องมีนามสกุล .xltm ไม่ใช่ .xltx

person Roman Plischke    schedule 05.06.2013