Microsoft Excel ActiveX Controls ถูกปิดใช้งานหรือไม่


113

ฉันมีแผ่นงาน Excel บางแผ่นที่ใช้ช่องทำเครื่องหมาย ActiveX เพื่อควบคุมกิจกรรมบางอย่าง พวกเขาทำงานเมื่อเร็ว ๆ นี้ แต่วันนี้เริ่มให้ข้อผิดพลาด ฉันได้รับการแจ้งเตือนเรื่องนี้จากเพื่อนร่วมงาน แต่คอมพิวเตอร์ยังทำงานอยู่ ฉันตรวจสอบเวอร์ชัน Excel ของเขาเทียบกับของฉันและของเขาใหม่กว่า ฉันสังเกตเห็นว่ามีการอัปเดต Windows ใหม่ฉันจึงทำการอัปเดต หลังจากที่ฉันใช้การอัปเดตที่รอดำเนินการตอนนี้ไม่สามารถใช้งานได้บนคอมพิวเตอร์ของฉันอีกต่อไป ฉันไม่สามารถทำเครื่องหมายในช่องทำเครื่องหมาย ActiveX ได้อีกต่อไปและเนื่องจากเป็นส่วนหนึ่งของการพยายามแก้ไขข้อบกพร่องดูเหมือนว่าฉันไม่สามารถเพิ่มตัวควบคุม ActiveX ลงในแผ่นงานใด ๆ แม้แต่แผ่นงานใหม่ได้อีกต่อไป ฉันได้รับข้อความแสดงข้อผิดพลาดว่า "ไม่สามารถแทรกวัตถุได้" (ฉันยังสามารถเพิ่มตัวควบคุมฟอร์มได้ แต่ไม่ใช่ ActiveX) มีใครประสบปัญหานี้หลังจากการอัปเดตล่าสุดหรือไม่ ข้อเสนอแนะใด ๆ ?

ขอบคุณ

ไมค์


มันควบคุมอะไรโดยเฉพาะ? หรือคุณหมายถึง ALL activeX
peege

เพื่อนร่วมงาน 3 คนของฉันก็ดูเหมือนจะมีปัญหานี้เช่นกัน ฉันคิดว่าสเปรดชีตของพวกเขาใช้ตัวควบคุม ActiveX - ComboBoxes และปุ่มต่างๆ หนึ่งในนั้นมีพีซีของเขากำลังทำงานอยู่จึงไม่ได้รับการอัปเดต เมื่อเขาได้มันกลับมามันก็รันการควบคุมได้สำเร็จ นั่นคือจนกว่าพีซีของเขาจะอัปเดตอัตโนมัติ ตอนนี้มันไม่ได้ นอกจากนี้เรายังไม่สามารถเพิ่มตัวควบคุม ActiveX ลงในแผ่นงานได้
Mitchell Kaplan

5
ฉันก็ประสบปัญหานี้เช่นเดียวกับผู้ใช้ทั้งหมดใน บริษัท ของฉัน MS จะปล่อยการอัปเดตที่ทำลายตัวควบคุม ActiveX ใน Excel ได้อย่างไร มันบ้าไปแล้ว.
harryg

3
@ vba4all: ไม่นี่เป็นคำถามเกี่ยวกับการเขียนโปรแกรมและอยู่ที่นี่
Harry Johnston

2
@ vba4all: ActiveX controls เป็นเครื่องมือในการเขียนโปรแกรมใช่หรือไม่? คุณจะใช้มันเพื่ออะไร มันจะแตกต่างกันไปตัวอย่างเช่นหาก OP ถามเกี่ยวกับผลิตภัณฑ์ของบุคคลที่สามโดยเฉพาะ (ที่ใช้ VBA) ที่หยุดทำงาน แต่ในกรณีนี้ดูเหมือนจะเป็นรหัสของเขาเองที่ได้รับผลกระทบ?
Harry Johnston

คำตอบ:


159

จากฟอรัมอื่น ๆ ฉันได้เรียนรู้ว่ามันเกิดจาก MS Update และการแก้ไขที่ดีคือเพียงแค่ลบไฟล์ MSForms.exd ออกจากโฟลเดอร์ย่อย Temp ในโปรไฟล์ของผู้ใช้ ตัวอย่างเช่น:

C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd

แน่นอนว่าต้องปิดแอปพลิเคชัน (Excel, Word ... ) เพื่อลบไฟล์นี้


1
ฉันมีพีซีที่ไม่ได้อัปเดต ฉันเปิด Excel และสามารถเพิ่มปุ่ม ActiveX ได้ ฉันมองหา C: \ Users [user.name] \ AppData \ Local \ Temp \ Excel8.0 \ MSForms.exd แต่ไม่มีโฟลเดอร์ Excel8.0 จากนั้นฉันก็รันการอัปเดต Windows ฉันลองอีกครั้งเพื่อเพิ่มปุ่ม ActiveX ในสเปรดชีตของฉันและไม่สามารถทำได้ ฉันสังเกตด้วยว่าตอนนี้ฉันมี Excel8.0 \ MSForms.exd ฉันลบมันและไม่ต้องรีบูต Excel ที่เปิดขึ้นมาใหม่และตอนนี้ก็สามารถเพิ่มปุ่ม ActiveX ได้แล้ว ขอบคุณ!
Mitchell Kaplan

2
ขอบคุณ!! กระบวนการนี้แก้ไขปัญหาในคอมพิวเตอร์ของฉัน ฉันรู้สึกว่าสำหรับนักพัฒนาที่มีการเผยแพร่ต่อสาธารณะจำนวนมากที่หยุดพักนี้ ... หวังว่า MS จะแก้ไขปัญหา
Mike Pedersen

1
สิ่งนี้ไม่ได้ผลสำหรับฉัน ฉันกำลังทำการกู้คืนระบบกลับไปที่ 12/7/14 บนพีซีเครื่องใดเครื่องหนึ่งของเราเพื่อดูว่าจะแก้ไขได้หรือไม่ ฉันยังลองลบปุ่มและแทนที่ตามคำตอบด้านล่าง แต่ฉันได้รับป๊อปอัป "ไม่สามารถแทรกวัตถุ" หรืออะไรทำนองนั้น
mountainclimber

1
สำหรับผู้ใช้ Windows XP โฟลเดอร์ย่อย Temp สามารถพบได้ที่นี่: C: \ Documents and Settings \ [user.name] \ Local Settings \ Temp \ Excel8.0 \ MSForms.exd
bjtilley

2
หลังจากลบไฟล์ข้างต้นมันไม่ได้ผลสำหรับฉัน แต่แล้วฉันพบไฟล์เหล่านี้ในโฟลเดอร์ C: / Windows / Temp และลบไฟล์เหล่านั้น จากนั้นฉันก็สามารถทำให้ปัญหานี้ใช้งานได้
QV1

35

นี่คือคำตอบที่ดีที่สุดที่ฉันพบในบล็อกทีมสนับสนุนของ Microsoft Excel

สำหรับผู้ใช้บางราย Forms Controls (FM20.dll) จะไม่ทำงานตามที่คาดไว้อีกต่อไปหลังจากติดตั้งการอัปเดตเดือนธันวาคม 2014 ปัญหาจะเกิดขึ้นในบางครั้งเช่นเมื่อพวกเขาเปิดไฟล์ที่มีโปรเจ็กต์ VBA ที่มีอยู่โดยใช้การควบคุมแบบฟอร์มพยายามแทรกตัวควบคุมฟอร์มในแผ่นงานใหม่หรือเรียกใช้ซอฟต์แวร์ของบุคคลที่สามที่อาจใช้ส่วนประกอบเหล่านี้

คุณอาจได้รับข้อผิดพลาดเช่น:

"ไม่สามารถแทรกวัตถุ" "ไลบรารีวัตถุไม่ถูกต้องหรือมีการอ้างอิงถึงคำจำกัดความของวัตถุที่ไม่พบ"

นอกจากนี้คุณอาจไม่สามารถใช้หรือเปลี่ยนแปลงคุณสมบัติของตัวควบคุม ActiveX บนแผ่นงานหรือได้รับข้อผิดพลาดเมื่อพยายามอ้างถึงตัวควบคุม ActiveX ในฐานะสมาชิกของแผ่นงานผ่านทางรหัส ขั้นตอนในการปฏิบัติตามหลังการอัปเดต:

ในการแก้ไขปัญหานี้คุณต้องลบไลบรารีชนิดควบคุม (ไฟล์ส่วนขยาย) เวอร์ชันแคชบนคอมพิวเตอร์ไคลเอนต์ ในการดำเนินการนี้คุณต้องค้นหาไฟล์ที่มีนามสกุลของชื่อไฟล์ ".exd" ในฮาร์ดดิสก์และลบไฟล์. exd ทั้งหมดที่คุณพบ ไฟล์. exd เหล่านี้จะถูกสร้างขึ้นใหม่โดยอัตโนมัติเมื่อคุณใช้ตัวควบคุมใหม่ในครั้งถัดไปที่คุณใช้ VBA ไฟล์ส่วนขยายเหล่านี้จะอยู่ภายใต้โปรไฟล์ของผู้ใช้และอาจอยู่ในตำแหน่งอื่นเช่นต่อไปนี้:

% appdata% \ รูปแบบ Microsoft \

% temp% \ Excel8.0

% temp% \ VBE

โซลูชันการเขียนสคริปต์:

เนื่องจากปัญหานี้อาจส่งผลกระทบต่อเครื่องมากกว่าหนึ่งเครื่องจึงเป็นไปได้ที่จะสร้างโซลูชันการเขียนสคริปต์เพื่อลบไฟล์ EXD และเรียกใช้สคริปต์เป็นส่วนหนึ่งของกระบวนการเข้าสู่ระบบโดยใช้นโยบาย สคริปต์ที่คุณต้องการควรมีบรรทัดต่อไปนี้และจะต้องถูกเรียกใช้สำหรับ USER แต่ละคนเนื่องจากไฟล์. exd เป็นไฟล์เฉพาะสำหรับผู้ใช้

เดล% temp% \ vbe \ *. exd

เดล% temp% \ excel8.0 \ *. exd

เดล% appdata% \ microsoft \ ฟอร์ม \ *. exd

เดล% appdata% \ microsoft \ local \ *. exd

เดล% appdata% \ Roaming \ microsoft \ ฟอร์ม \ *. exd

เดล% temp% \ word8.0 \ *. exd

เดล% temp% \ PPT11.0 \ *. exd

ขั้นตอนเพิ่มเติม:

หากขั้นตอนข้างต้นไม่สามารถแก้ไขปัญหาของคุณได้ให้ทำขั้นตอนอื่นที่ทดสอบได้ (ดูคำเตือนด้านล่าง):

  1. บนเครื่องที่อัปเดตอย่างสมบูรณ์และหลังจากลบไฟล์. exd แล้วให้เปิดไฟล์ใน Excel พร้อมสิทธิ์แก้ไข

    เปิด Visual Basic สำหรับแอปพลิเคชัน> แก้ไขโครงการโดยการเพิ่มข้อคิดเห็นหรือแก้ไขบางชนิดในโมดูลรหัสใด ๆ > ดีบัก> คอมไพล์ VBAProject

    บันทึกและเปิดไฟล์อีกครั้ง ทดสอบความละเอียด หากได้รับการแก้ไขให้จัดเตรียมโครงการที่อัปเดตนี้แก่ผู้ใช้เพิ่มเติม

    คำเตือน: หากขั้นตอนนี้ช่วยแก้ปัญหาของคุณได้โปรดทราบว่าหลังจากปรับใช้โปรเจ็กต์ที่อัปเดตนี้กับผู้ใช้รายอื่นแล้วผู้ใช้เหล่านี้จะต้องมีการอัปเดตที่ใช้กับระบบและไฟล์. exd ของตนออกด้วย

หากวิธีนี้ไม่สามารถแก้ไขปัญหาของคุณได้อาจเป็นปัญหาอื่นและอาจจำเป็นต้องแก้ไขปัญหาเพิ่มเติม

Microsoft กำลังดำเนินการแก้ไขปัญหานี้ ดูบล็อกสำหรับการอัปเดต

แหล่ง


3
ตรวจสอบแหล่งที่มาที่เชื่อมโยงขณะนี้ได้อัปเดตโซลูชันการเขียนสคริปต์แล้ว
peterson

บนเครื่องของฉัน% appdata% ถูกกำหนดเป็น "C: \ Users \ <current user> \ AppData \ Roaming \" ดังนั้นจึงไม่มีไดเร็กทอรี "% appdata% \ microsoft \ local \" นอกจากนี้ "% appdata% \ Roaming \ microsoft \ ฟอร์ม \" ดูเหมือนจะซ้ำซ้อนเนื่องจาก "C: \ Users \ <current user> \ AppData \ Roaming \ Roaming \ microsoft \ ฟอร์ม \" และอีกครั้งไม่มีไดเร็กทอรีดังกล่าวอยู่ บนเครื่องของฉัน
pstraton

15

มันเป็นKB2553154 Microsoft จำเป็นต้องออกการแก้ไข ในฐานะผู้พัฒนาแอปพลิเคชัน Excel เราไม่สามารถไปที่คอมพิวเตอร์ไคลเอนต์ทั้งหมดและลบไฟล์ออกได้ เราได้รับการตำหนิสำหรับบางสิ่งที่เกิดจาก Microsoft


1
KB2596927 และ KB2726958 ขึ้นอยู่กับเวอร์ชันของ Office ที่คุณกำลังใช้งานอยู่
Harry Johnston

13

ฉันเป็นนักพัฒนา Excel และฉันรู้สึกเจ็บปวดเมื่อเกิดเหตุการณ์นี้ขึ้น โชคดีที่ฉันสามารถหาวิธีแก้ปัญหาได้โดยการเปลี่ยนชื่อไฟล์ MSForms.exd ใน VBA แม้ว่า Excel จะทำงานอยู่ซึ่งก็สามารถแก้ไขปัญหาได้เช่นกัน นักพัฒนา Excel ที่ต้องการแจกจ่ายสเปรดชีตสามารถเพิ่มรหัส VBA ต่อไปนี้ลงในสเปรดชีตเพื่อให้พวกเขามีภูมิคุ้มกันต่อการอัปเดต MS

วางรหัสนี้ในโมดูลใดก็ได้

Public Sub RenameMSFormsFiles() 
  Const tempFileName As String = "MSForms - Copy.exd"  
  Const msFormsFileName As String = "MSForms.exd"  
  On Error Resume Next 

  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd file  
  RenameFile Environ("TEMP") & "\Excel8.0\" & msFormsFileName, Environ("TEMP") & "\Excel8.0\" & tempFileName 
  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd file  
  RenameFile Environ("TEMP") & "\VBE\" & msFormsFileName, Environ("TEMP") & "\VBE\" & tempFileName 
End Sub  

Private Sub RenameFile(fromFilePath As String, toFilePath As String) 
  If CheckFileExist(fromFilePath) Then 
      DeleteFile toFilePath  
      Name fromFilePath As toFilePath  
  End If  
End Sub

Private Function CheckFileExist(path As String) As Boolean 
  CheckFileExist = (Dir(path) <> "")  
End Function  

Private Sub DeleteFile(path As String) 
  If CheckFileExist(path) Then 
      SetAttr path, vbNormal  
      Kill path  
  End If  
End Sub    

รูทีนย่อย RenameMSFormsFiles พยายามเปลี่ยนชื่อไฟล์ MSForms.exd ในC:\Users\[user.name]\AppData\Local\Temp\Excel8.0\และC:\Users\[user.name]\AppData\Local\Temp\VBE\โฟลเดอร์เป็น MSForms - Copy.exd

จากนั้นเรียกใช้รูทีนย่อย RenameMSFormsFiles ที่จุดเริ่มต้นของเหตุการณ์ Workbook_Open

Private Sub Workbook_Open() 
  RenameMSFormsFiles  
End Sub

สเปรดชีตจะพยายามเปลี่ยนชื่อไฟล์ MSForms.exd เมื่อเปิดขึ้น เห็นได้ชัดว่านี่ไม่ใช่การแก้ไขที่สมบูรณ์แบบ:

  1. ผู้ใช้ที่ได้รับผลกระทบจะยังคงพบข้อผิดพลาดในการควบคุม ActiveX เมื่อเรียกใช้รหัส VBA ในครั้งแรกที่เปิดสเปรดชีต หลังจากเรียกใช้รหัส VBA เพียงครั้งเดียวและเริ่ม Excel ใหม่ปัญหาจะได้รับการแก้ไข โดยปกติเมื่อผู้ใช้พบสเปรดชีตที่ใช้งานไม่ได้ปฏิกิริยาที่เข่ากระตุกคือปิด Excel แล้วลองเปิดสเปรดชีตอีกครั้ง :)
  2. ไฟล์ MSForms.exd จะถูกเปลี่ยนชื่อทุกครั้งที่เปิดสเปรดชีตแม้ว่าจะไม่มีปัญหากับไฟล์ MSForms.exd ก็ตาม แต่สเปรดชีตจะทำงานได้ดี

อย่างน้อยในตอนนี้นักพัฒนา Excel สามารถแจกจ่ายงานของตนต่อไปได้ด้วยวิธีแก้ปัญหานี้จนกว่า Microsoft จะออกการแก้ไข

ฉันโพสต์วิธีแก้ปัญหานี้ที่นี่แล้ว


ขอบคุณยี่. มันใช้งานได้สำหรับฉัน แต่ฉันต้องรีสตาร์ทExcel 2010ของฉัน(อาจเชื่อมโยงกับความจริงที่ว่าฉันกำลังเรียกใช้โปรแกรมแก้ไข VBA ในเวลาเดียวกัน?)
J. Chomel

5

ด้วย Windows 8.1 ฉันไม่พบไฟล์. exd ใด ๆ โดยใช้การค้นหาของ windows ในทางกลับกันคำสั่ง cmd dir *.exd /Sพบไฟล์เดียวในระบบของฉัน


3

คำแนะนำใน KB ขึ้นไปไม่ได้ผลสำหรับฉัน ฉันค้นพบว่าหากผู้ใช้ Excel 2007 หนึ่งคน (ที่มีหรือไม่มีการอัปเดตความปลอดภัยไม่แน่ใจในสถานการณ์ที่แน่นอนที่ทำให้เกิดสิ่งนี้) บันทึกไฟล์ข้อผิดพลาดเดิมจะส่งคืน

ฉันค้นพบว่าวิธีที่เร็วที่สุดในการซ่อมแซมไฟล์อีกครั้งคือการลบรหัส VBA ทั้งหมด บันทึก จากนั้นแทนที่รหัส VBA (คัดลอก / วาง) บันทึก ก่อนที่จะลองสิ่งนี้ฉันจะลบไฟล์. EXD ก่อนเพราะมิฉะนั้นฉันจะได้รับข้อผิดพลาดเมื่อเปิด

ในกรณีของฉันฉันไม่สามารถอัปเกรด / อัปเดตผู้ใช้ทั้งหมดของไฟล์ Excel ของฉันในตำแหน่งต่างๆ เนื่องจากปัญหากลับมาหลังจากผู้ใช้บางคนบันทึกไฟล์ Excel ฉันจะต้องแทนที่ตัวควบคุม ActiveX ด้วยอย่างอื่น


2
ไม่มีคำแนะนำใดที่ใช้ได้ผลสำหรับฉันยกเว้นการบันทึกไฟล์เป็น XLSX (ลบโค้ดทั้งหมด) จากนั้นวางใหม่ตามที่คุณทำ - บันทึกเป็น XLSM อีกครั้ง ความเจ็บปวดมหาศาลในตูด Microsoft การติดตั้งสำนักงานใหม่ไม่สามารถแก้ไขได้สำหรับฉันดังนั้นจึงไม่มีใครเสียเวลาลองทำเช่นนั้น
DontFretBrett

2

คำแนะนำที่ง่ายขึ้นสำหรับผู้ใช้ปลายทาง อย่าลังเลที่จะคัดลอก / วางสิ่งต่อไปนี้

นี่คือวิธีแก้ไขปัญหาเมื่อเกิดขึ้น:

  1. ปิดโปรแกรมและไฟล์ Office ของคุณทั้งหมด
  2. เปิด Windows Explorer และพิมพ์% TEMP% ในแถบที่อยู่จากนั้นกด Enter เพื่อเข้าสู่โฟลเดอร์ชั่วคราวของระบบ
  3. ค้นหาและลบโฟลเดอร์ต่อไปนี้: Excel8.0, VBE, Word8.0
  4. ตอนนี้ลองใช้ไฟล์ของคุณอีกครั้งก็ไม่น่าจะมีปัญหาใด ๆ

คุณอาจต้องรอจนกว่าปัญหาจะเกิดขึ้นเพื่อให้การแก้ไขนี้ได้ผล การใช้ก่อนกำหนด (ก่อนที่ Windows Update จะติดตั้งในระบบของคุณ) จะไม่ช่วย


2

แหล่งข้อมูลที่ดีที่สุดและการอัปเดตเกี่ยวกับปัญหานี้ที่ฉันพบอยู่ในบล็อกของ TechNet »บล็อกทีมสนับสนุน Microsoft Excel (ดังที่กล่าวไว้):

การควบคุมแบบฟอร์มหยุดทำงานหลังจากการอัปเดตเดือนธันวาคม 2014 (อัปเดต 10 มีนาคม 2015)

ในเดือนมีนาคม 2015 โปรแกรมแก้ไขด่วนได้รับการเผยแพร่นอกเหนือจากคำแนะนำการแก้ไขอัตโนมัติและคำแนะนำด้วยตนเองและยังมีอยู่ใน Windows Update ด้วย

การอัปเดตและแก้ไขล่าสุดจาก Microsoft: 3025036 ข้อผิดพลาด "ไม่สามารถแทรกวัตถุ" ในโซลูชัน Office แบบกำหนดเองของ ActiveX หลังจากที่คุณติดตั้งการปรับปรุงการรักษาความปลอดภัย MS14-082

สถานะ: อัปเดต 10 มีนาคม 2558:

โปรแกรมแก้ไขด่วนสำหรับปัญหานี้ได้รับการเผยแพร่ในการอัปเดตสำหรับ Office 2007, 2010 และ 2013 ในเดือนมีนาคม 2015

ข้อมูลทั่วไปเกี่ยวกับปัญหา:

สำหรับผู้ใช้บางราย Form Controls (FM20.dll) จะไม่ทำงานตามที่คาดไว้อีกต่อไปหลังจากติดตั้ง MS14-082 Microsoft Office Security Updates สำหรับเดือนธันวาคม 2014 ปัญหาจะเกิดขึ้นในบางครั้งเช่นเมื่อพวกเขาเปิดไฟล์ที่มีโปรเจ็กต์ VBA ที่มีอยู่โดยใช้ตัวควบคุมฟอร์มให้ลอง เพื่อแทรกการควบคุมแบบฟอร์มในแผ่นงานใหม่หรือเรียกใช้ซอฟต์แวร์ของบุคคลที่สามที่อาจใช้ส่วนประกอบเหล่านี้

https://technet.microsoft.com/en-us/library/security/ms14-082.aspx

คุณอาจได้รับข้อผิดพลาดเช่น: "ไม่สามารถแทรกวัตถุ"; "ไลบรารีอ็อบเจ็กต์ไม่ถูกต้องหรือมีการอ้างอิงถึงนิยามอ็อบเจ็กต์ที่ไม่พบ"; "โปรแกรมที่ใช้สร้างออบเจ็กต์นี้คือ Forms โปรแกรมนั้นไม่ได้ติดตั้งบนคอมพิวเตอร์ของคุณหรือไม่ตอบสนองหากต้องการแก้ไขออบเจ็กต์นี้ให้ติดตั้งแบบฟอร์มหรือตรวจสอบให้แน่ใจว่ากล่องโต้ตอบใด ๆ ในฟอร์มปิดอยู่" [... ] นอกจากนี้คุณอาจไม่สามารถใช้หรือเปลี่ยนแปลงคุณสมบัติของตัวควบคุม ActiveX บนแผ่นงานหรือได้รับข้อผิดพลาดเมื่อพยายามอ้างถึงตัวควบคุม ActiveX ในฐานะสมาชิกของแผ่นงานผ่านทางรหัส

คู่มือและแนวทางแก้ไขเพิ่มเติม:

โซลูชันการเขียนสคริปต์:

เนื่องจากปัญหานี้อาจส่งผลกระทบต่อเครื่องมากกว่าหนึ่งเครื่องจึงเป็นไปได้ที่จะสร้างโซลูชันการเขียนสคริปต์เพื่อลบไฟล์ EXD และเรียกใช้สคริปต์เป็นส่วนหนึ่งของกระบวนการเข้าสู่ระบบโดยใช้นโยบาย สคริปต์ที่คุณต้องการควรมีบรรทัดต่อไปนี้และจะต้องถูกเรียกใช้สำหรับ USER แต่ละคนเนื่องจากไฟล์. exd เป็นไฟล์เฉพาะสำหรับผู้ใช้

del %temp%\vbe\*.exd
del %temp%\excel8.0\*.exd
del %appdata%\microsoft\forms\*.exd
del %appdata%\microsoft\local\*.exd
del %temp%\word8.0\*.exd
del %temp%\PPT11.0\*.exd

ขั้นตอนเพิ่มเติม:

หากขั้นตอนข้างต้นไม่สามารถแก้ไขปัญหาของคุณได้ให้ทำขั้นตอนอื่นที่ทดสอบได้ (ดูคำเตือนด้านล่าง):

  1. บนเครื่องที่อัปเดตอย่างสมบูรณ์และหลังจากลบไฟล์. exd แล้วให้เปิดไฟล์ใน Excel พร้อมสิทธิ์แก้ไข

  2. เปิด Visual Basic สำหรับแอปพลิเคชัน> แก้ไขโครงการโดยการเพิ่มข้อคิดเห็นหรือแก้ไขบางชนิดในโมดูลรหัสใด ๆ > ดีบัก> คอมไพล์ VBAProject

  3. บันทึกและเปิดไฟล์อีกครั้ง ทดสอบความละเอียด

หากได้รับการแก้ไขให้จัดเตรียมโครงการที่อัปเดตนี้แก่ผู้ใช้เพิ่มเติม

คำเตือน: หากขั้นตอนนี้ช่วยแก้ปัญหาของคุณได้โปรดทราบว่าหลังจากปรับใช้โปรเจ็กต์ที่อัปเดตนี้กับผู้ใช้รายอื่นแล้วผู้ใช้เหล่านี้จะต้องมีการอัปเดตที่ใช้กับระบบและไฟล์. exd ของตนออกด้วย


1

ในที่สุดฉันก็พบคำตอบนี้ใน Microsoft KB อย่างเป็นทางการ:

http://support.microsoft.com/kb/3025036/EN-US

ที่นี่ไม่มีข้อมูลใหม่นอกเหนือจากที่เรามีในคำตอบก่อนหน้านี้ แต่อย่างน้อยก็ยอมรับว่า Microsoft ตระหนักถึงปัญหานี้


0

ฉันรู้ว่ามีการโพสต์คำตอบมากมายสำหรับเรื่องนี้ แต่ไม่มีคำตอบเดียวที่ใช้ได้กับเว็บไซต์ของฉัน นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน:

ขั้นตอนที่ 1: ถอนการติดตั้งการอัปเดตต่อไปนี้ - KB2920789, KB2920790, KB2920792, KB2920793, KB2984942, KB2596927

ขั้นตอนที่ 2: ซ่อนการอัปเดตเหล่านี้เพื่อไม่ให้ติดตั้งในการรีบูตครั้งต่อไป

ขั้นตอนที่ 3: ลบโฟลเดอร์ Excel8.0 จาก C: \ Users \ <> \ AppData \ Local \ Temp

ขั้นตอนที่ 4: รีสตาร์ทเวิร์กสเตชัน (ฉันจะตรวจสอบให้แน่ใจว่า KB ที่กล่าวถึงข้างต้นไม่ได้ถูกนำไปใช้โดยไม่ได้ตั้งใจ)


0

ฉันต้องการให้คำตอบที่ได้ผลเป็นเพียงสิ่งเดียวสำหรับฉัน (ฉันตระหนักดีว่าฉันอาจเป็นเพียงคนเดียวที่เคยมีมา) ฉันมีมาโครตัวหนึ่งที่ฉันเรียกโดยใช้ Ribbon มีรหัสต่อไปนี้:

colStore = new Collection

ฉันไม่รู้ว่ามันเกิดข้อผิดพลาดดังนั้นฉันจึงงงงวยและลองทุกอย่างที่นี่ ปุ่มหยุดทำงานและฉันไม่สามารถใช้งานได้ เมื่อฉันสังเกตเห็นข้อผิดพลาดและแก้ไขเป็น:

Set colStore = new Collection

มันเริ่มทำงานอีกครั้ง แปลกมากถ้าคุณถามฉัน แต่บางทีมันอาจช่วยใครบางคนที่สิ้นหวังเหมือนฉันก็ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.