Lỗi thời gian chạy 13 - Loại không khớp - Phạm vi VBA excel sang powerpoint

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

Popular posts from this blog

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Khẩn cấp - File Excel chứa các ký tự đặc biệt ở họ và tên liên hệ