Vướng mắc một chút về VBA trong Word

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Điều hành viên: tungblt

Đăng trả lời
ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 262
Ngày tham gia: Thứ 2 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 times
Been thanked: 1 time
Tiếp xúc:

Vướng mắc một chút về VBA trong Word

Gửi bài by ngaydautiendihoc »

Xin hỏi mọi người 1 việc
Trong Excel có thể dùng Application.Transpose để gán một mảng vào trong Combobox nhưng trong Word thì lại không được. Vậy có ai biết làm cách nào để khắc phục trường hợp này không?
Xin cảm ơn.
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 528 times

Re: Vướng mắc một chút về VBA trong Word

Gửi bài by truongphu »

Lâu ngày nhỉ !
ngaydautiendihoc đã viết:Excel có thể dùng Application.Transpose
Bạn đã rõ như thế, cớ sao hỏi thêm?
Chèn Excel vào để gọi hàm, thế thôi:

Mã: Chọn tất cả

Set aaa = CreateObject("Excel.Application")
aaa.WorksheetFunction.Transpose (Arg1)
Thật ra, tôi cũng chưa bao giờ dùng hàm nầy :D
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 262
Ngày tham gia: Thứ 2 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 times
Been thanked: 1 time
Tiếp xúc:

Re: Vướng mắc một chút về VBA trong Word

Gửi bài by ngaydautiendihoc »

Cảm ơn bác, em nói cụ tỉ (cụ thể và tỉ mỉ) để bác hình dung giúp
Em truy xuất dữ liệu trong 1 file Access sau đó hiển thị lên Combobox
Trong Excel thì chỉ cần làm như sau:

Dim ArrayAny as Variant
ArrayAny = Rs.GetRows 'Rs as ADODB.Recordset
Combo1.List = Application.Transpose(ArrayAny)

Là có thể gán toàn bộ các phần tử trong 1 mảng cho Combo nhưng trong Word thì lại không được
Hy vọng nhận được những chỉ giáo cụ tỉ của bác.
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 528 times

Re: Vướng mắc một chút về VBA trong Word

Gửi bài by truongphu »

Nói cho nhanh là tôi không thạo lắm!
ngaydautiendihoc đã viết:Combo1.List = Application.Transpose(ArrayAny)
* Combo1.List Không thể nào áp đặt với dấu = như thế
* Cho dù dùng Combo1 của User Form; tôi đã thử cả với ListBox của User Form

*Application.Transpose: Không thể nào có hàm Transpose thuộc Class Application
Muốn dùng hàm Transpose, phải qua Class WorksheetFunction:

Mã: Chọn tất cả

Application.WorksheetFunction.Transpose
Và đương nhiên là Code sau đây không chạy: (tôi vẫn trích dẫn cho rõ ý bạn, dùng User Form của Excel có chèn ADO 2.8)
Private Sub CommandButton1_Click()
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rcArray As Variant
Dim sSQL As String

cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
ThisWorkbook.Path & "\db2.mdb" & ";"

rst.Open "SELECT * FROM Table1;", cnt
rcArray = rst.GetRows

With Me.ListBox1
.Clear
.ColumnCount = 10
.List = Application.Transpose(rcArray)
.ListIndex = -1
End With

'Close ADO objects
rst.Close
cnt.Close
Set rst = Nothing
Set cnt = Nothing
End Sub
Có thể bạn nào có ý kiến khác chăng? ngochoan2006 xuất hiện đi !
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
vietteiv
Quản trị
Quản trị
Bài viết: 1325
Ngày tham gia: Thứ 7 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 times
Been thanked: 70 times
Tiếp xúc:

Re: Vướng mắc một chút về VBA trong Word

Gửi bài by vietteiv »

truongphu đã viết:ngochoan2006 xuất hiện đi !
hihi chú truongphu gọi thêm đồng minh kìa, phen này ngaydautiendihoc khổ rồi đây :D
ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 262
Ngày tham gia: Thứ 2 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 times
Been thanked: 1 time
Tiếp xúc:

Re: Vướng mắc một chút về VBA trong Word

Gửi bài by ngaydautiendihoc »

Ui, có gì mà khổ chứ.
Vấn đề đau đầu là cái đoạn code này:
.List = Application.Transpose(rcArray)
Khi viết trong VBA Excel thì nó chạy ầm ầm nhưng khi chuyển sang VBA Word thì lại báo lỗi không có hàm Transpose. Cùng họ Office với nhau sao lại phân biệt thế nhỉ. Lão Bill chơi khó nhau quá, chẳng lẽ lao ta bắt anh em mình phải dùng For Next à?
Đăng trả lời

Quay về