คำถามติดแท็ก vba

Visual Basic for Applications (VBA) เป็นภาษาการเขียนโปรแกรมเชิงวัตถุที่ขับเคลื่อนด้วยเหตุการณ์สำหรับการเขียนมาโครซึ่งใช้สำหรับชุดโปรแกรม Office ทั้งหมดและแอปพลิเคชันอื่น ๆ VBA ไม่เทียบเท่ากับ VB.NET หรือ VBS หากคุณทำงานใน Visual Studio ให้ใช้ [vb.net] หากคำถามของคุณเกี่ยวกับการเขียนโปรแกรมแอปพลิเคชัน MS Office โดยเฉพาะให้ใช้แท็กที่เหมาะสม: [excel], [ms-access], [ms-word], [outlook] หรือ [ms-project]

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

5
ฉันจะใช้ FileSystemObject ใน VBA ได้อย่างไร
มีบางสิ่งที่ฉันต้องการอ้างอิงหรือไม่? ฉันจะใช้สิ่งนี้ได้อย่างไร: Dim fso As New FileSystemObject Dim fld As Folder Dim ts As TextStream ฉันได้รับข้อผิดพลาดเนื่องจากไม่รู้จักวัตถุเหล่านี้

7
จะระงับคำเตือน Update Links ได้อย่างไร?
ฉันกำลังพยายามเขียนสคริปต์ที่เปิดไฟล์ Excel จำนวนมาก ฉันได้รับข้อความแจ้ง: This workbook contains links to other data sources. ฉันต้องการป้องกันไม่ให้ข้อความนี้ปรากฏขึ้นเพื่อให้สคริปต์ของฉันสามารถดูเวิร์กบุ๊กทั้งหมดได้โดยอัตโนมัติโดยที่ฉันไม่ต้องคลิกDon't Updateสำหรับแต่ละรายการ ขณะนี้ฉันใช้สิ่งต่อไปนี้: function getWorkbook(bkPath as string) as workbook Application.EnableEvents=False Application.DisplayAlerts=False getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false) end function อย่างไรก็ตามข้อความดังกล่าวยังคงปรากฏอยู่ ฉันจะระงับมันได้อย่างไร? แก้ไข: ดูเหมือนว่าข้อความนี้จะปรากฏขึ้นสำหรับสมุดงานที่มีลิงก์เสีย ฉันไม่เห็นThis workbook contains one or more links that cannot be updatedข้อความเพราะฉันตั้งค่าDisplayAlertsเป็นเท็จ สมุดงานเชื่อมโยงกับไฟล์ที่เทียบเท่าในโฟลเดอร์บนเซิร์ฟเวอร์ Windows ของเราดังนั้นเมื่อไฟล์ที่ตรงกันถูกลบออกจากโฟลเดอร์นั้น (ซึ่งเกิดขึ้นเป็นส่วนหนึ่งของกระบวนการทางธุรกิจของเรา) ลิงก์จะแตก เป็นไปได้หรือไม่ที่จะระงับการเตือนเมื่อลิงค์เสีย? นอกจากนี้ฉันใช้ Excel 2010
110 excel  vba 

3
แยกออกจาก while … Wend loop
ฉันใช้ While ... Wend loop ของ VBA Dim count as Integer While True count=count+1 If count = 10 Then ''What should be the statement to break the While...Wend loop? ''Break or Exit While not working EndIf Wend ฉันไม่ต้องการใช้เงื่อนไขเช่น `While count <= 10 ... Wend
107 excel  vba  while-loop 

15
จะหยุดชั่วคราวตามระยะเวลาที่กำหนดได้อย่างไร? (Excel / VBA)
ฉันมีแผ่นงาน Excel ที่มีมาโครต่อไปนี้ ฉันอยากจะวนซ้ำทุก ๆ วินาที แต่ถ้าฉันสามารถหาฟังก์ชั่นนี้ได้ เป็นไปไม่ได้เหรอ? Sub Macro1() ' ' Macro1 Macro ' Do Calculate 'Here I want to wait for one second Loop End Sub
103 excel  vba 

6
VBA - วิธีการข้ามการวนซ้ำแบบมีเงื่อนไข
ฉันมีสำหรับลูปเหนืออาร์เรย์ สิ่งที่ฉันต้องการทำคือทดสอบเงื่อนไขบางอย่างในลูปและข้ามไปยังการทำซ้ำถัดไปหากเป็นจริง: For i = LBound(Schedule, 1) To UBound(Schedule, 1) If (Schedule(i, 1) < ReferenceDate) Then PrevCouponIndex = i Continue '*** THIS LINE DOESN'T COMPILE, nor does "Next" End If DF = Application.Run("SomeFunction"....) PV = PV + (DF * Coupon / CouponFrequency) Next ฉันรู้ว่าฉันทำได้: If (Schedule(i, 1) < ReferenceDate) Then …
101 vba  conditional  loops 

7
วิธีเพิ่มแท็บ Ribbon แบบกำหนดเองโดยใช้ VBA
ฉันกำลังมองหาวิธีเพิ่มแท็บแบบกำหนดเองในริบบิ้น Excel ซึ่งจะมีปุ่มไม่กี่ปุ่ม ฉันเปลี่ยนไปใช้ทรัพยากรบางอย่างที่พูดถึงมันผ่านทาง Google แต่ทั้งหมดดูน่ากลัวและซับซ้อนมาก วิธีที่ง่ายและรวดเร็วในการทำคืออะไร? ฉันต้องการให้แท็บใหม่โหลดเมื่อ VBA ของฉันโหลดลงใน Excel .. UPDATE : ฉันลองใช้ตัวอย่างนี้จากที่นี่แต่ได้รับข้อผิดพลาด "object required" ในคำสั่งสุดท้าย: Public Sub AddHighlightRibbon() Dim ribbonXml As String ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" ribbonXml = ribbonXml + " <mso:ribbon>" ribbonXml = ribbonXml + " <mso:qat/>" ribbonXml = ribbonXml + " <mso:tabs>" ribbonXml = ribbonXml …
100 excel  vba  excel-2007  ribbonx 

4
อะไรคือความแตกต่างระหว่าง“ Form Controls” และ“ ActiveX Control” ใน Excel 2010
การใช้ Microsoft Excel 2010 ผมสังเกตเห็นทั้งสองชนิดของการควบคุมที่สามารถแทรกลงในเอกสาร: ตัวควบคุมฟอร์มและควบคุม ActiveX อะไรคือความแตกต่างระหว่างพวกเขา?

4
เท่ากับ“! =” ใน Excel VBA คืออะไร
ปัญหาคือ!=ไม่ทำงานเป็นฟังก์ชันใน excel vba ฉันต้องการที่จะสามารถใช้ If strTest != "" Then แทน If strTest = "" Then มีแนวทางอื่นที่จะทำนอกเหนือจากนี้!=หรือไม่? หน้าที่ของฉันที่จะเลียนแบบ!=คือ Sub test() Dim intTest As Integer Dim strTest As String intTest = 5 strTest = CStr(intTest) ' convert Range("A" + strTest) = "5" For i = 1 To 10 Cells(i, 1) = i …

7
คุณทดสอบเวลาทำงานของรหัส VBA ได้อย่างไร?
มีโค้ดใน VBA หรือไม่ที่ฉันสามารถรวมฟังก์ชั่นที่จะแจ้งให้ฉันทราบเวลาที่ใช้ในการทำงานเพื่อที่ฉันจะได้เปรียบเทียบเวลาทำงานที่แตกต่างกันของฟังก์ชันได้หรือไม่

5
เรียกใช้แมโคร Excel โดยอัตโนมัติในการเปลี่ยนแปลงเซลล์
ฉันจะเรียกใช้แมโคร Excel โดยอัตโนมัติทุกครั้งที่ค่าในเซลล์ใดเซลล์หนึ่งเปลี่ยนแปลงได้อย่างไร ตอนนี้รหัสการทำงานของฉันคือ: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H5")) Is Nothing Then Macro End Sub "H5"เซลล์ที่ถูกตรวจสอบอยู่ที่ไหนและMacroเป็นชื่อของมาโคร มีวิธีที่ดีกว่า?
91 excel  vba  automation 

2
VBA ตรวจสอบว่ามีการตั้งค่าวัตถุหรือไม่
ฉันมีตัวแปรส่วนกลางที่เป็นอินสแตนซ์ของคลาสที่ฉันกำหนดเอง ฉันจะตรวจสอบได้อย่างไรว่าออบเจ็กต์ถูกตั้งค่าหรือว่าฉันต้องการเริ่มต้นหรือไม่
91 ms-access  vba 

4
Hash Table / Associative Array ใน VBA
ฉันไม่พบเอกสารอธิบายวิธีสร้างตารางแฮชหรืออาร์เรย์เชื่อมโยงใน VBA เป็นไปได้หรือไม่? คุณสามารถเชื่อมโยงไปยังบทความหรือดีกว่าโพสต์รหัสได้หรือไม่

4
วิธีเพิ่มข้อมูลอ้างอิงโดยใช้โปรแกรม
ฉันได้เขียนโปรแกรมที่ทำงานและส่งข้อความถึง Skype พร้อมข้อมูลเมื่อเสร็จสิ้น ฉันต้องการเพิ่มข้อมูลอ้างอิงSkype4COM.dllเพื่อที่จะส่งข้อความผ่าน Skype เรามีคอมพิวเตอร์หลายสิบเครื่องในเครือข่ายและเซิร์ฟเวอร์ไฟล์ที่ใช้ร่วมกัน (เหนือสิ่งอื่นใด) คอมพิวเตอร์เครื่องอื่น ๆ ทั้งหมดต้องสามารถเรียกใช้โปรแกรมนี้ได้ ฉันหวังว่าจะหลีกเลี่ยงการตั้งค่าการอ้างอิงด้วยมือ ฉันได้วางแผนที่จะวางข้อมูลอ้างอิงไว้ในตำแหน่งที่ใช้ร่วมกันและเพิ่มโดยทางโปรแกรมเมื่อโปรแกรมทำงาน ฉันไม่สามารถหาวิธีเพิ่มข้อมูลอ้างอิงในโปรแกรม Excel 2007 โดยใช้ VBA ได้ ฉันรู้วิธีการทำด้วยตนเอง: VBE --> Tools --> References --> browse --_> File Location and Nameเปิด แต่นั่นไม่ค่อยมีประโยชน์สำหรับจุดประสงค์ของฉัน ฉันรู้ว่ามีวิธีดำเนินการในAccess Vb.netและรหัสที่คล้ายกับสิ่งนี้ยังคงโผล่ขึ้นมา แต่ฉันไม่แน่ใจว่าเข้าใจหรือไม่หรือเกี่ยวข้องกัน: ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{0002E157-0000-0000-C000-000000000046}", _ Major:=5, Minor:=3 จนถึงตอนนี้ในโซลูชันที่นำเสนอในการเพิ่มข้อมูลอ้างอิงโดยทางโปรแกรมฉันจะต้องเพิ่มการอ้างอิงด้วยตนเองและเปลี่ยนศูนย์ความเชื่อถือซึ่งเป็นมากกว่าการเพิ่มข้อมูลอ้างอิง แม้ว่าฉันเดาว่าถ้าฉันทำตามวิธีแก้ปัญหาที่เสนอฉันจะสามารถเพิ่มการอ้างอิงในอนาคตโดยใช้โปรแกรมได้ ซึ่งอาจทำให้คุ้มค่ากับความพยายาม คิดต่อไปจะดีมาก
89 excel  vba  reference 

8
การแยกวิเคราะห์วันที่ / เวลา ISO8601 (รวมถึง TimeZone) ใน Excel
ฉันต้องการแยกวิเคราะห์รูปแบบวันที่ / เวลา ISO8601 ด้วยเขตเวลาที่รวมไว้ (จากแหล่งภายนอก) ใน Excel / VBA เป็นวันที่ของ Excel ปกติ เท่าที่ฉันสามารถบอกได้ Excel XP (ซึ่งเป็นสิ่งที่เราใช้) ไม่มีรูทีนสำหรับในตัวดังนั้นฉันเดาว่าฉันกำลังดูฟังก์ชัน VBA ที่กำหนดเองสำหรับการแยกวิเคราะห์ เวลาที่ ISO8601 มีลักษณะดังนี้: 2011-01-01 2011-01-01T12:00:00Z 2011-01-01T12:00:00+05:00 2011-01-01T12:00:00-05:00 2011-01-01T12:00:00.05381+05:00

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