Trần Quốc Cường
Trần Quốc Cường
Thảo luận 1 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 242 lượt xem

Dim mypath As Stringmypath = ApplicationFileDig(msoFileDigSaveAs)ShowwbSaveAs ApplicationFileDig(msoFileDigSaveAs)SelectedItems(1)Mình

Dim mypath As String
mypath = Application.FileDialog(msoFileDialogSaveAs).Show
wb.SaveAs Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1)
Mình chưa hiểu chỗ:
- Khai báo biến mypath xong đâu thấy sử dụng đâu, nhưng bỏ thì lỗi
- SelectedItems(1) chỗ này mình thử đổi thành số 2, thì cũng báo lỗi
Mong nhận được phản hồi của các anh ạ. Thks
Thảo luận 1 câu trả lời
Lượt xem 242 lượt xem
Vỗ tay vỗ tay
Trần Quốc Cường 08:07 - Jul 01, 2020
Thứ 1: về mypath. Khi tạo biến này thì VBA sẽ duyệt qua nó, như vậy sẽ chạy cửa sổ Save as.
Bạn có thể viết không cần gán biến mypath mà chỉ cần viết nội dung Application.FileDialog(msoFileDialogSaveAs).Show là được.
Nếu không chạy đoạn đó thì lỗi.
Việc gán biến chỉ giúp dễ làm việc thôi. Bạn có thể viết các lệnh liên quan tới cửa sổ save as thông qua lệnh dưới đây:
mypath = Application.FileDialog(msoFileDialogSaveAs)
With mypath
.show
...
End with
---
Thứ 2: SelectedItems(1) được hiểu là file thứ 1 được chọn. Ở đây khi save as bạn chỉ save as 1 file, do đó sẽ chỉ có 1 file được chọn. Nếu thay bằng các số khác 1 thì đều lỗi.
Nếu có nhiều hơn 1 file (ví dụ khi chọn FilePicker mà cho phép chọn nhiều file) thì sẽ viết:
SelectedItems(n) là file thứ n được chọn
trong đó bạn có thể chạy vòng lặp với biến n chạy từ 1 tới .SelectedItems.Count (đếm tổng số file được chọn)
Với từng file được chọn bạn sẽ làm gì tiếp theo thì lập trình tiếp.
Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội