Tôi đã tạo macro trong Excel sẽ quay một biểu đồ 3D. Tôi đã sao chép biểu đồ vào PowerPoint, thiết lập mã để chạy trong PowerPoint khi trình chiếu được hiển thị. Mã chạy, nhưng tôi không thể làm cho nó thực sự thay đổi những gì được hiển thị trên màn hình. Khi trang trình bày ở chế độ chỉnh sửa, biểu đồ quay. Bất kỳ ý tưởng làm thế nào để có được mã để không chỉ chạy (tôi có thể thấy các số gỡ lỗi hiển thị), nhưng cập nhật màn hình khi ở chế độ trình bày? Mã của tôi là:Xoay biểu đồ 3D trong bản trình bày PowerPoint
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub SpinTheChart()
RotateX = ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _
.ThreeD.RotationX
Do While ActivePresentation.SlideShowWindow.View.CurrentShowPosition = 2
RotateX = RotateX + 7
If RotateX > 360 Then RotateX = RotateX - 360
ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _
.ThreeD.RotationX = RotateX
DoEvents
Sleep 125
Debug.Print RotateX
Loop
End Sub
Sub OnSlideShowPageChange()
Dim i As Integer
i = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
If i = 2 Then SpinTheChart
End Sub
CẬP NHẬT: Tôi vẫn đang đấu tranh này. Có vẻ như một số gợi ý cho biết để cập nhật biểu đồ hiện được hiển thị, bạn cần phải sử dụng, bên dưới DoEvents:
SlideShowWindows(1).View.GotoSlide SlideSowWindows(1).View.CurrentShowPosition
nhưng điều này không hiệu quả. Nó thoát khỏi bất kỳ mã nào đang chạy. Do đó, Do/Loop trong hàm đầu tiên được thoát và nó không đi vào lần lặp thứ hai.
Bạn đã kiểm tra để đảm bảo các đối tượng sử dụng cùng một giao diện giữa Excel và Powerpoint? –
UPDATE của bạn có phải là mã sao chép chính xác từ mã không? Nếu vậy, hãy kiểm tra chính tả trong nửa thứ hai, trong đó 'SlideShowWindows' bị viết sai chính tả. –
Bạn đã hỏi câu hỏi này cách đây bốn tháng và không có câu trả lời: Bạn đã từng giải quyết vấn đề này chưa? –