challenge98
Thành viên chính thức
- Tham gia
- 21/6/09
- Bài viết
- 90
- Được thích
- 5
Bạn sử dụng code này:Vì booka của mình luôn thay đổi còn bookb của mình có form cố định rồi mình muốn làm cái này cho chuyên nghiệp ai biết chỉ dùm với.
Const MyPath As String = "C:\Users\Mr Dom\Desktop\GPE\booka va bookb\" 'Sua lai theo duong dan cua ban
Const MyFile As String = "Booka.xls"
Const MySh As String = "Sheet1"
Dim MyArg As String
'
Private Sub CommandButton1_Click()
Dim i As Long, j As Long
Dim No As Integer
Dim MyArray(100, 2)
ListBox1.ColumnCount = 2
MyArg = "'" & MyPath & "[" & MyFile & "]" & MySh & "'!R"
For j = 0 To 2
For i = 0 To 100
MyArray(i, j) = ExecuteExcel4Macro(MyArg & i + 1 & "C" & j + 1)
Next
Next
ListBox1.List = MyArray()
Erase MyArray
End Sub
Bạn ơi, người ta chỉ khai báo Const Hằng As... khi Hằng này được sử dụng cho các Sub khác... Ở đây chỉ có 1 Sub duy nhất mà khai báo thế có vẽ hơi dư... Cứ Dim... bình thường trong nội bộ Sub là được rồiBạn sử dụng code này:
Bạn lưu ý là nhớ sửa lại đường dẫn đến file gốc nhé
ThânMã:Const MyPath As String = "C:\Users\Mr Dom\Desktop\GPE\booka va bookb\" 'Sua lai theo duong dan cua ban Const MyFile As String = "Booka.xls" Const MySh As String = "Sheet1" Dim MyArg As String ' Private Sub CommandButton1_Click() Dim i As Long, j As Long Dim No As Integer Dim MyArray(100, 2) ListBox1.ColumnCount = 2 MyArg = "'" & MyPath & "[" & MyFile & "]" & MySh & "'!R" For j = 0 To 2 For i = 0 To 100 MyArray(i, j) = ExecuteExcel4Macro(MyArg & i + 1 & "C" & j + 1) Next Next ListBox1.List = MyArray() Erase MyArray End Sub
Tạm thời giải quyết cho bạn câu 1, câu 2 chưa nghĩ ra.Cảm ơn bạn domfootwear đã giúp nhưng chưa đúng ý mình lắm
1. Ở trong hộp thoại có hiện ra các mặt hàng nhưng chưa có chỗ chọn các măt hàng này để điền vào ô ở cột A của sheet hiện hành.
2. Có nút chọn đường dẫn tới foder của booka thì tốt chứ mỗi lần lại phải vào sửa code thì không tiện lắm
Sub napdl()
Dim tam As Variant
Sheet1.[A1].QueryTable.Refresh BackgroundQuery:=False
tam = Sheet1.[A1].CurrentRegion.Value
ListBox1.Clear
ListBox1.List() = tam
End Sub
Sub napdl()
Sheet1.[A1].QueryTable.Refresh BackgroundQuery:=False
ListBox1.Clear
ListBox1.List() = Sheet1.[A1].CurrentRegion.Value
End Sub