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

Visual Basic สำหรับแอปพลิเคชัน เซตย่อยของ Visual Basic ที่ใช้ในแอปพลิเคชัน Microsoft Office ทั้งหมด พิจารณาใช้แท็กนี้พร้อมกับแท็กสำหรับแอปพลิเคชันเฉพาะที่เป็นปัญหา คำถามที่ดีเกี่ยวกับ VBA โดยทั่วไปมีรหัสบางส่วนและขอวิธีแก้ไขปัญหาเฉพาะ คำถามที่ถามถึงวิธีแก้ไขทั้งหมด (โปรดให้รหัส / วิธีการทำสิ่งนี้กับ VBA) เป็นหัวข้อนอกหัวข้อและจะถูกปิดในวงกว้างเกินไป

1
อีเมลที่ตอบกลับโดยสคริปต์ VBA จะไม่แสดงไอคอนตอบกลับที่มีลูกศรสีม่วง
ฉันมีสคริปต์ VBA ที่ย้ายอีเมลไปยังโฟลเดอร์ (กล่องโต้ตอบ) และสร้างการตอบกลับที่จะถูกบันทึกไว้ในโฟลเดอร์เดียวกัน ปัญหาที่ฉันมีคืออีเมลต้นฉบับไม่เคยแสดงไอคอนตอบกลับพร้อมลูกศรสีม่วง ความคิดใด ๆ ที่ฉันหายไป? Sub FileAndReply() 'This subroutine will move the highlighted email to a user selected folder 'and generate a reply that will be saved in the same folder. 'PROBABLY: Must have Save copy of messages in Sent folder set. 'MAYBE: Must have When …

1
การนำฟังก์ชันแฮชไปใช้กับ Excel 2016
ฉันพบโพสต์เกี่ยวกับฟังก์ชันแฮช แต่ไม่สามารถใช้งานได้เนื่องจากข้อผิดพลาด ฉันยังไม่ได้ทำ VBA ตั้งแต่ปี 2010 ดังนั้นจึงค่อนข้างไกลและฉันไม่สามารถดีบักได้ โพสต์ต่อไปนี้มีฟังก์ชันแฮช: มีฟังก์ชัน Excel เพื่อสร้างค่าแฮชหรือไม่ . Public Function BASE64SHA1(ByVal sTextToHash As String) Dim asc As Object Dim enc As Object Dim TextToHash() As Byte Dim SharedSecretKey() As Byte Dim bytes() As Byte Const cutoff As Integer = 5 Set asc = CreateObject("System.Text.UTF8Encoding") Set enc …

2
พิมพ์ช่วงค่าภายใน MsgBox โดยไม่วนซ้ำใน VBA
ฉันมีปัญหากับ Excel vba ที่ฉันต้องการพิมพ์ค่าช่วงในกล่องข้อความเช่น MsgBox "Sheets("sheet1").Range("A1:D1") ฉันรู้ว่ามันเป็นไปได้ด้วยลูปเช่นเดียวกับเซลล์เช่น for i=1 to 4 MsgBox "Sheets("Sheet1").Cells(1,i) next i มีวิธีใดบ้างที่ฉันสามารถใช้การดำเนินการนี้โดยไม่ต้องวนซ้ำใน VBA ขอบคุณ

1
การใช้การค้นหาและการชดเชยเพื่อสร้างช่วงไดนามิก [ปิด]
ฉันกำลังพยายามสร้างรหัสที่จะเรียงลำดับค้นหาและคัดลอกข้อมูลจากชุดข้อมูลที่เปลี่ยนแปลงตลอดเวลา ฉันคิดว่าฉันจำเป็นต้องกำหนดตัวแปรแล้วให้รหัสค้นหาพิกัดสำหรับตัวแปรแล้วดำเนินการต่อ แต่นั่นอาจผิดทั้งหมด ฉันได้รวมแนวคิดพื้นฐานของสิ่งที่ฉันต้องการให้โค้ดทำภายในโค้ด แต่ฉันไม่ทราบว่าพวกเขาใช้ไวยากรณ์เพื่อให้ทำงานได้หรือไม่ ความคิดใด ๆ ย่อย Organize_Data () Dim A As Integer Dim B As Integer Dim C As Integer Dim X As Integer Dim Function_Name As String Replace_Blank '******Next line could use some "robusting" by replacing hard coded value with a search for EE status************** A = …

1
วิธีรวมค่าจากหลายแถวเข้าในแถวเดียวโดยใช้โมดูลได้อย่างไร
ฉันต้องการรวมหลายแถวเข้าด้วยกันเป็นแถวตามค่าในคอลัมน์รหัส .. ฉันสังเกตเห็นคำถามอื่น ๆ ที่คล้ายกับคำถามของฉันที่นี่ แต่ดูเหมือนว่าฉันไม่สามารถขยายขอบเขตได้ .. Code Name Value A Value B Value C Value D Value E 101 Example # 101 Example 101 Example # 101 Example # 101 Example # 102 Example2 # 102 Example2 # 102 Example2 # 102 Example2 # 102 Example2 # ดังนั้นผลลัพธ์สุดท้ายจะเป็นดังนี้: Code …

0
ปุ่มลัดเพื่อเลือกเนื้อหาของเซลล์ปัจจุบัน
มีปุ่มลัดหรือปุ่มลัดตามลำดับเพื่อเลือกเนื้อหาของตารางเซลล์ใน MS-word หรือไม่? เคอร์เซอร์อยู่ในเซลล์นั้น ทั้งหมดที่ฉันพบคือแท็บสำหรับเนื้อหาเซลล์ถัดไปและ Shift + Tab สำหรับเนื้อหาเซลล์ก่อนหน้า ปุ่มลัดที่แตกต่างกันบนเว็บแสดง "แถบเครื่องมือ 32778" เป็นปุ่มลัด ฉันต้องการข้อมูลนี้สำหรับมาโคร VBA


1
ไฟล์ Excel 2003 ที่มี Visual Basic ขัดข้อง Excel 2013
ฉันมีไฟล์ Excel 2003 พร้อมรหัส Visual Basics อยู่ สามารถใช้งานได้ดีในเวอร์ชันจนถึง Excel 2010 แต่ไม่สามารถใช้งานได้ใน Excel 2013 Excel ขัดข้องทุกครั้งที่ใช้ฟังก์ชัน VB ฉันมี ToolPak Analysis Add-in เพิ่มเติม - VBA ภายใต้ศูนย์ความเชื่อถือฉันได้ตรวจสอบ "ความเชื่อถือการเข้าถึงโมเดลโครงการ VBA" เปิดใช้งานแมโครเมื่อเปิดไฟล์ มีการตรวจสอบ Excel 4 Macrosheets และ Add-in Files แน่นอนฉันไม่ต้องการเขียนโปรแกรมใหม่ ข้อเสนอแนะใด ๆ ขอบคุณสำหรับความช่วยเหลือ!

2
ฉันต้องการแทนที่ข้อความที่ส่วนท้ายของบรรทัด (ขวา) เท่านั้นโดยไม่ต้องแทนที่ข้อความอื่น ๆ ที่เริ่มต้นชื่อเดียวกันกับส่วนด้านซ้าย
ฉันต้องการแทนที่ข้อความถึงจุดสิ้นสุดของบรรทัด (ขวา) เท่านั้นโดยไม่ต้องแทนที่ข้อความอื่น ๆ ที่เริ่มต้นชื่อเดียวกันเป็นส่วนด้านซ้าย พิจารณาบรรทัดนี้: Replace1 ในข้อความReplace1 ฉันต้องการแทนที่ Replace1 (จัดรูปแบบด้วยตัวเอียง) ที่อยู่ท้ายบรรทัดด้วยข้อความอื่น ๆ โดยไม่ต้องเปลี่ยน Replace1 ที่เริ่มต้นที่จุดเริ่มต้นของบรรทัด ฉันมักจะต้องการทำเช่นนี้ใน notepad ++ หรือ excel แต่ถ้าภาษาการเขียนโปรแกรมอื่น ๆ ที่ทำงานนี้กรุณาพูดถึงมันจะได้รับการชื่นชมอย่างมาก!

1
VBA - ข้อผิดพลาดประเภทไม่ตรงกันสำหรับลูปและอาร์เรย์อาร์เรย์ 2 มิติ
สิ่งที่ฉันพยายามทำคือการคัดลอกหนึ่งอาร์เรย์ไปยังอาร์เรย์ชั่วคราวในขณะที่ฉันปรับขนาดอาร์เรย์เดิมแล้วคัดลอกอาร์เรย์ชั่วคราวกลับไปเป็นต้นฉบับที่ปรับขนาดแล้ว แต่ฉันพบข้อผิดพลาด "type mismatch" เมื่อลูปแรกทำงาน ฉันทำอะไรผิดเพื่อรับข้อผิดพลาดนี้ Public Sub UpdateNamesPaid(NameValue As String, Paid As String) NamesPaid(NamesPaidSize, 0) = NameValue NamesPaid(NamesPaidSize, 1) = Paid NamesPaidSize = NamesPaidSize + 1 Dim TempArray() As Variant ReDim TempArray(0 To NamesPaidSize, 0 To 1) Dim i As Integer Dim j As Integer i = 0 j …

1
รูปแบบเกี่ยวกับวิธีรวมค่าจากหลายแถวเข้าด้วยกันเป็นแถวเดียวใน Excel [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว: Excel 2007 ไขว้ / รวมหลายแถวเป็น 2 คำตอบเดียว สวัสดีฉันกำลังพยายามปรับ VBA ที่ยอดเยี่ยมที่โพสต์ก่อนหน้านี้เพื่ออ่านข้อมูลและนำทุกบรรทัดที่มี ID เดียวกันในคอลัมน์ 1 และเพิ่มทั้งหมดลงในหนึ่งแถวสำหรับแต่ละรายการ พยายามรับจากสิ่งนี้: สำหรับสิ่งนี้ แต่โค้ดที่ดัดแปลงด้านล่างจะรวมแถว 2 แถวเข้าด้วยกันเท่านั้นแม้ว่าจะมีมากกว่าสองแถวที่มี id เดียวกันในคอลัมน์ 1 Sub CombineInvoices() Dim currentRow As Long Dim currentCol As Long Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row currentCol = 4 For currentRow = LastRow To 2 …

1
วิธีสร้างเซลล์ที่มีชื่อเป็นแบบอ่านอย่างเดียว
ฉันต้องการสร้างเซลล์ "ชื่อเซลล์" แบบอ่านอย่างเดียว ฉันพบรหัสนี้ที่นี่ แต่ไม่ทราบวิธีการใช้ค่า String แทนช่วง: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Selection, Range("A1:A4")) Is Nothing Then Range("B1").Select End If End Sub ฉันจะปรับรหัสนี้ให้เหมาะกับความต้องการของฉันได้อย่างไร

1
ชื่อควบคุมที่ทำให้แมโครของฉันผิดพลาด
ฉันมีมาโครหลายชุดในรูปแบบที่ฉันสร้างขึ้นเพื่อให้ผู้ใช้ในสาขาของฉันใช้ เมื่อพวกเขาเสร็จสิ้นเอกสารและต้องการส่งไปยังคนที่เหมาะสมฉันได้สร้างมาโคร FINISH สิ่งนี้จะทำความสะอาดเอกสารสำหรับพวกเขาโดยทั่วไปลดขนาดไฟล์ลงเหลือประมาณ 50KB จาก 2MB + มาโคร (ด้านล่าง) จะทำสิ่งต่อไปนี้: A. ) ลบปุ่มควบคุมที่ฉันใส่ไว้ในแบบฟอร์มเพื่อให้พวกเขาใช้เมื่อพวกเขากำลังป้อนข้อมูลของพวกเขา ปุ่มเหล่านี้คือ; ตรึงข้อมูล - แปลงสูตรทั้งหมดในเอกสารให้เป็นข้อความคงที่ บันทึกไฟล์ - ให้ชื่อเฉพาะตามเนื้อหาของเซลล์ในเอกสาร FINISH - ปุ่มที่สอดคล้องกับแมโคร FINISH B. ) ลบแท็บที่มีข้อมูลดรอปดาวน์อยู่ เมื่อฉันพยายามใช้ปุ่ม FINISH เพื่อเรียกใช้แมโครฉันได้รับข้อความที่ระบุว่า "ไม่สามารถเรียกใช้แมโคร" รูปแบบการประเมิน - 2.xlsm'Button11_Click ' แมโครอาจไม่พร้อมใช้งานในสมุดงานนี้หรือแมโครทั้งหมดอาจถูกปิดใช้งาน " มาโครในสมุดงาน อย่างไรก็ตามเมื่อฉันดึงรายการมาโครขึ้นมามันจะแสดงให้เห็นอย่างชัดเจนว่ามาโครนั้นอยู่ในสมุดงานนั้น Sub Finish() Application.DisplayAlerts = False ' ' Finish Macro ' …

1
บันทึกและเปลี่ยนชื่อสิ่งที่แนบมาจาก Outlook 2013 เป็นโฟลเดอร์เฉพาะ
ฉันใช้ขั้นตอนจากโพสต์อื่นในไซต์นี้และใช้งานได้สองสามวันและตอนนี้ก็ไม่ได้ ไฟล์มาจากบุคคลเดียวกันเสมอและเป็นไฟล์แนบ xlsm เสมอ ฉันเปิดใช้งานกฎเมลไคลเอ็นต์ที่ไม่ปลอดภัยในมุมมองเพื่อเปิดใช้งานสคริปต์ ฉันสร้างกฎที่ย้ายอีเมลจากบุคคลที่เฉพาะเจาะจงไปยังโฟลเดอร์ย่อยภายใต้กล่องจดหมาย กฎสิ่งที่แนบมา จากนั้นเรียกใช้สคริปต์ต่อไปนี้ Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String saveFolder = "c:\Automation\CBM\" For Each objAtt In itm.Attachments objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName Set objAtt = Nothing Next End Sub การย้ายไปยังโฟลเดอร์ย่อยจะทำงานได้ แต่การบันทึกสิ่งที่แนบไปยังตำแหน่งโฟลเดอร์จะไม่ทำงานอีกต่อไป ฉันตรวจสอบการตั้งค่ามาโครและพวกเขาถูกตั้งค่าให้เปิดใช้งานทั้งหมด ฉันไม่แน่ใจว่าทำไมมันหยุดทำงาน มันทำงาน แต่หลังจากการย้ายไปยังโฟลเดอร์ย่อยไม่มีอะไรเกิดขึ้น คำแนะนำใด ๆ …

1
ซ่อนแถวตามค่าของเซลล์ที่ระบุ
Private Sub Worksheet_Change(ByVal Target As Range) If Range("A1").Value = "Passed" Then Rows("2:5").EntireRow.Hidden = True ElseIf Range("A1").Value = "Failed" Then Rows("2:5").EntireRow.Hidden = False End If End Sub ฉันกำลังเพิ่มเข้าไปในโมดูล VBA ปกติ เมื่อฉันพยายามเรียกใช้ระบบจะเปิดหน้าจอมาโคร ฉันต้องการให้มันทำงานในพื้นหลังเพื่อให้ทุกอย่างที่ฉันพิมพ์ผ่านบนแถว A1 2 - 5 ซ่อนโดยอัตโนมัติ ฉันใช้ Excel 2012 โปรดช่วยด้วย ขอบคุณ :-)

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