พยายามเขียนโค้ดเพื่อดึงข้อมูลจากไฟล์ทั้งหมด


1

ฉันพยายามใช้รหัสเพื่อค้นหาเวิร์กบุคทั้งหมดและหากพบว่ามีการสืบค้นอะไรให้คัดลอกและวางทั้งแถวไปยังกล่องรายการในฟอร์มผู้ใช้

เราสั่งซื้อชิ้นส่วนจำนวนมากและเราต้องการค้นหาเพื่อดูว่าชิ้นส่วนนั้นได้รับคำสั่งครั้งสุดท้าย การค้นหานี้จะดึงข้อมูลนั้นขึ้นมา

รหัสด้านล่างคือการให้ข้อความแสดงข้อผิดพลาดและฉันไม่สามารถหาสาเหตุ OBJECT DOESN’T SUPPORT THIS PROPERTY OR METHOD ส่วนที่เป็นตัวหนากำลังถูกเน้นเมื่อฉันเรียกใช้รหัส

ใครช่วยได้บ้าง

Option Explicit
Private Sub CommandButton1_Click()
Dim wb1 As Workbook, wb2 As Workbook
Set wb1 = ThisWorkbook
Dim ws As Worksheet
Dim sPath As String
Dim sfile As String
Dim C As Range
sPath = "\\192.168.1.4\ET_Documents\Shared Documents\Inventory Transactions\TRANSACTIONS AS OF 11-3-2017\"
sfile = Dir(sPath & "*.xls*")
Application.ScreenUpdating = False
Set ws = Sheet1
ListBox1 = 0
Do While sfile <> ""
Set wb2 = Workbooks.Open(sPath & sfile)
    With ListBox1
        For Each C In wb2.Columns("b8:b15")          ' THIS IS THE HIGHLIGHTED LINE
                If C = TextBox1.Value Then
                    With C.EntireRow
                        ListBox1.AddItem
                    End With
                End If
        Next
    End With
wb2.Close False
sfile = Dir()
Loop

Application.ScreenUpdating = True
End Sub

คำตอบ:


1

ตามที่ระบุไว้ข้อผิดพลาด Object ของคุณ ( wb2 ) ไม่มีวิธีการหรือคุณสมบัติที่ตรงกับวิธีการ / คุณสมบัติที่คุณพยายามใช้ columns )

Columns เป็นคุณสมบัติของ Excel งาน แผ่น ชั้น ในขณะที่คุณกำลังพยายามใช้กับงาน หนังสือ ซึ่ง ไม่มีคุณสมบัตินั้น .


เดาว่าฉันสามารถกำจัด. คอลัมน์และใช้ ws แทนสมุดงานแต่ละเล่มที่ดูเหมือนมีเพียงแผ่นเดียว
D. Clements

ลบ. คอลัมน์และเพิ่ม. ช่วงฉันไม่ได้รับข้อผิดพลาด แต่ฉันไม่เห็นกล่องรายการเติมทั้ง ... มันควรเติมกล่องรายการที่มีค่าเซลล์ที่มี textbox1.value
D. Clements

แทนที่ wb2.Columns("b8:b15") กับ wb2.Worksheets(1).Range("b8:b15")
Vegard

ฉันแทนที่คอลัมน์ด้วยสิ่งที่คุณพูดและฉันไม่ได้รับข้อผิดพลาดอีกต่อไป ... เพียงแค่ไม่เห็นผลลัพธ์ในกล่องรายการด้วย
D. Clements

สิ่งที่ต้องลอง: Dim C As Rangeเพิ่มทั้งคู่ C.Value และ TextBox1.Value ไปที่รายการเฝ้าดูจากนั้นค่อยก้าวผ่านรหัสโดยใช้ F8 เป็นไปได้มากว่ากล่องรายการจะไม่ได้รับการบรรจุเนื่องจากการวนซ้ำจะไม่เข้าสู่ตำแหน่งที่คาดหวัง ฉันจะเดิมพันว่ามีค่าหรือประเภทข้อมูลไม่ตรงกัน
Vegard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.