Lỗi thời gian chạy 13 - Loại không khớp - Phạm vi VBA excel sang powerpoint
Chào mọi người,
Tôi đang gặp lỗi thời gian chạy 13 loại không khớp khi sử dụng VBA để sao chép một phạm vi excel sang powerpoint. Tôi đã đánh dấu trong phần đọc có lỗi.
Mục đích là để nó sao chép phạm vi từ powerpoint rồi dán dưới dạng bảng có thể chỉnh sửa (không được nhúng). Tôi đang cố gắng lấy nó để tôi có thể thay đổi kích thước phông chữ trong bảng nhưng vẫn chưa thể hiểu được điều đó (con trỏ được đánh giá cao - người mới ảo ở đây).
Phụ TạoPPT()
'Sao chép và Dán Excel vào PPT
Dim myRange As Range
Làm mờ PowerPointApp làm đối tượng
Làm mờ bài thuyết trình của tôi dưới dạng đối tượng
Làm mờ mySlide dưới dạng đối tượng
Làm mờ CheckPointReport dưới dạng ShapeRange
Làm mờ myTable dưới dạng bảng
'Tạo PowerPoint
'Tạo một thể hiện của PowerPoint
Khi gặp lỗi Tiếp tục Tiếp theo
'PowerPoint đã được mở chưa?
Đặt PowerPointApp = GetObject(class:="PowerPoint.Application")
'Xóa lỗi giữa các lỗi
Err.Xóa
'Nếu PowerPoint chưa mở thì hãy mở PowerPoint
Nếu PowerPointApp không có gì thì hãy đặt PowerPointApp = CreateObject(class:="PowerPoint.Application")
'Xử lý nếu không tìm thấy Ứng dụng PowerPoint
Nếu Err.Number = 429 Thì
MsgBox "Không thể tìm thấy PowerPoint, đang hủy bỏ."
Thoát phụ
kết thúc nếu
Khi Lỗi GoTo 0
'Tối ưu mã
Application.ScreenUpdating = Sai
'Tạo bài thuyết trình mới
Đặt myPresentation = PowerPointApp.Presentations.Add
'Thêm slide vào bài thuyết trình
Đặt mySlide = myPresentation.Slides.Add(1, 12) '12 = trống
'Sao chép Phạm vi Excel
Đặt myRange = ThisWorkbook.ActiveSheet.Range("A1:AZ73")
myRange.Copy
mySlide.Shapes.PasteKiểu dữ liệu đặc biệt:=ppPasteHTML
Với PowerPointApp.ActiveWindow.Selection.ShapeRange
.Trái = 0 * 28,34646
.Top = 0 * 28,34646
.Chiều rộng = 33,87 * 28,34646
.Chiều cao = 19,05 * 28,34646
Kết thúc với
Đặt CheckPointReport = PowerPointApp.ActiveWindow.Selection.ShapeRange
Với CheckPointReport
Nếu .HasTable = msoTrue thì
Đặt myTable = PowerPointApp.ActiveWindow.Selection.Table
kết thúc nếu
Kết thúc với
kết thúc phụ
Trả lời:
Sử dụng
Đặt myTable = CheckPointReport.Table
Trả lời:
Thay đổi các khai báo
Làm mờ CheckPointReport dưới dạng ShapeRange
Làm mờ myTable dưới dạng bảng
ĐẾN
Làm mờ CheckPointReport dưới dạng đối tượng
Làm mờ myTable dưới dạng đối tượng
Ngoài ra, tôi muốn thay thế ppPasteHTML bằng 8 (Tôi cho rằng bạn đang sử dụng liên kết muộn, tức là bạn chưa đặt tham chiếu đến Thư viện đối tượng Microsoft PowerPoint 16.0)
Comments
Post a Comment