ข้ามการยืนยันการเลือกไฟล์ Excel สำหรับการเชื่อมต่อข้อมูลด้วยไฟล์ข้อความที่ไม่ใช่. txt


3

ฉันมีสมุดงาน Excel ที่ประมวลผลเอาท์พุทแบบจำลองจากโปรแกรมอื่น โปรแกรมนั้นสร้างไฟล์เอาต์พุตข้อความล้วนที่คั่นด้วยช่องว่างด้วยส่วนขยาย".plt" ฉันมีการเชื่อมต่อข้อมูลใน Excel เพื่อนำข้อมูลเหล่านั้นมาใช้ แต่ต้องการการคลิกมากกว่าที่ฉันต้องการ ปัจจุบันขั้นตอนการทำงานคือ:

  1. เรียกใช้รุ่นอื่น ๆ
  2. ใน Excel คลิก Data-> Refresh All
  3. ในกล่องโต้ตอบไฟล์ที่เปิดขึ้นให้คลิกที่"Text Files (* .prn, * .txt, * .csv)"
  4. ดึงลงปรากฏ - คลิกที่: "แฟ้มทั้งหมด (* * * * *.)"
  5. เลือกชื่อไฟล์จากรายการ (ชื่อไฟล์ไม่เคยเปลี่ยนแปลง - เสมอ"Output.plt" )
  6. เลือก"นำเข้า"

จากที่นี่จะจดจำการตั้งค่าทั้งหมดสำหรับการเชื่อมต่อข้อมูล - ตำแหน่งข้อความเป็นคอลัมน์ ฯลฯ เนื่องจากชื่อไฟล์ของฉันไม่เคยเปลี่ยนแปลง แต่ฉันหวังว่ามันจะจำชื่อไฟล์ของฉันได้ดังนั้นฉันจะมีหนึ่งหรือสองเท่านั้น จำนวนคลิกแทนที่จะเป็น 5

ฉันพยายามบันทึกมาโครโดยทำตามขั้นตอนเหล่านี้ทั้งหมด แต่สิ่งเดียวที่ปรากฏใน VBA คือ ActiveWorkbook.RefreshAll


1
วิธีการเกี่ยวกับสมุดงานเปิดชื่อไฟล์: = _ "C: \ Desktop / Output.plt" ในแมโคร
cybernard

ที่เปิด Output.plt เป็นไฟล์ แต่ไม่ได้นำไปไว้ในResultsAnalysisTemplate.xlsbของ ฉันฉันเดาว่าฉันสามารถใช้ VBA เพื่อเปิดไฟล์ขึ้นเลือกกลุ่มข้อมูลแต่ละกลุ่มที่ฉันต้องการและคัดลอกแต่ละกลุ่มไปยังตำแหน่งที่เหมาะสมใน เทมเพลต แต่ฉันคิดว่าจะมีวิธีแก้ไขปัญหาเพิ่มเติมโดยตรง
อดัม

คำตอบ:


3

มีตัวเลือกให้แจ้งชื่อไฟล์

ไปที่ข้อมูล / การเชื่อมต่อเลือกการเชื่อมต่อของคุณคลิกคุณสมบัติ

ภายใต้ส่วนควบคุมการรีเฟรชบนแท็บการใช้งานให้ลบเครื่องหมายออกจากกล่อง "แจ้งขอชื่อไฟล์เมื่อรีเฟรช"


0
Dim File_Path As String
File_path=" C:\Users\owner\John\Output.plt"
Open File_Path for Input as #1
row_num= 5
Do until EOF(1)
Line Input #1, Line_FromFile
Line_Items = Split(Line_FromFile, ",")
Range("C"&row_num).Value = Line_Items(2)
Range("B"&row_num).Value = Line_Items(1)
Range("A"&row_num).Value = Line_Items(0)
row_num = row_num + 1
Loop
Close #1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.