GIÚP ĐỠ! Điều chỉnh macro Thêm hình ảnh trong Excel trên máy Mac

GIÚP ĐỠ! Điều chỉnh macro Thêm hình ảnh trong Excel trên máy Mac

Chào mọi người,

Việc này làm tôi đau đầu quá! Tôi có một macro có thể chèn hình ảnh vào ô, dựa trên giá trị của ô và tên tệp. Nó hoạt động hoàn hảo trên máy tính PC của tôi! Tuy nhiên, nó lại không hoạt động trên máy Mac.

Có ai biết cách chỉnh sửa mã code không ạ? Cảm ơn nhiều!!

Sub AddImage()

Dim i As Long, j As Long, yr As Long

Khai báo CellName là chuỗi, ArtCode là chuỗi, CellCol là kiểu Variant

Dim Pic_Path As String, Pic_Name As String, Pic_WildChar As String

Dim fs As Object

Dim MissList As String

Khi xảy ra lỗi, hãy chuyển đến bài viết tiếp theo.

CellCol = Array("a") 'Thêm (các) cột cần thiết với số hiệu bài viết xuất hiện

ArtCodeCol = "a"

Đặt fs = CreateObject("Scripting.FileSystemObject")

MissList = ""

lLastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

Trong khi ActiveSheet.Range(ArtCodeCol & CStr(i)).Value = "*" Và i <= lLastRow

Bỏ qua những hàng đó nếu chúng đã bị ẩn.

Nếu (ActiveSheet.Range(ArtCodeCol & CStr(i)).EntireRow.Hidden <> True) thì

Đối với j = 0 Đến UBound(CellCol)

CellName = CellCol(j)

ArtCode = Trim$(ActiveSheet.Range(CellName & CStr(i)).Value)

Nếu ArtCode <> "" Và Len(ArtCode) <= 16 Và InStr(1, ArtCode, "Total", vbTextCompare) = 0 Và StrComp(Left(ArtCode, 3), "Art", vbTextCompare) <> 0 Thì

Dim aParse, sVariantType

aParse = Split(ArtCode, " ", , vbTextCompare)

Nếu UBound(aParse) - LBound(aParse) + 1 >= 3 thì

'-----------------------------------------------------------------

Được thêm bởi Edmund Chan lúc 08/05/2009

'Để xác định độ dài bài viết nhằm đảm bảo độ dài đạt mức 6'.

'-----------------------------------------------------------------

sVariantType = " "

Đối với z = 1 Đến UBound(aParse)

Nếu aParse(z) <> "" thì

sVariantType = Cắt(aParse(z))

Lối ra

Kết thúc nếu

Kế tiếp

Pic_WildChar = Left(aParse(0) & " ", 6) & sVariantType & Right(ArtCode, 6) & ".jpg"

Khác

Pic_WildChar = Left(ArtCode & " ", 6) & "* *.jpg"

Kết thúc nếu

'Chỉ vào đường dẫn nơi có thể tìm thấy bức tranh'

Đối với yr = Năm(Hiện tại) + 1 Đến năm 2003 Bước -1

Pic_Path = "/Users/Jmi/Desktop/folder1/Macro Pic/"

Tên ảnh = Dir(Đường dẫn ảnh & Ký tự đại diện ảnh)

Nếu Len(Pic_Name) = 0 thì

Pic_Path = "/Users/Jmi/Desktop/folder1/Macro Pic/"

Tên ảnh = Dir(Đường dẫn ảnh & Ký tự đại diện ảnh)

Kết thúc nếu

Nếu Len(Pic_Name) > 0 thì

Lối ra

Kết thúc nếu

Kế tiếp

Nếu Len(Pic_Name) = 0 thì

Pic_Path = "/Users/Jmi/Desktop/folder1/Macro Pic/"
Pic_Name = Dir(Pic_Path & ArtCode & "*.jpg")

Kết thúc nếu

Tên ảnh = Đường dẫn ảnh & Tên ảnh

Nếu fs.FileExists(Pic_Name) thì

Với ActiveSheet.Range(CellName & CStr(i))

Dim p As Object, dScaleFactor As Double

.RowHeight = 50

Đặt p = ActiveSheet.Shapes.AddPicture(Pic_Name, msoFalse, msoCTrue, _

.Bên trái + 10, _

.Top + 18, _

60, _

60)

dScaleFactor = 0.4

p.LockAspectRatio = msoTrue

p.ScaleWidth dScaleFactor, msoTrue

' Office 2003 hoặc các phiên bản trước đó cũng phải sử dụng ScaleHeight() để giữ nguyên tỷ lệ khung hình'

Nếu Application.Version <= 11 thì

p.ScaleHeight dScaleFactor, msoTrue

Kết thúc nếu

.RowHeight = p.Height + 25

.Lựa chọn

Đặt p = Không có gì

Kết thúc bằng

Khác

MissList = MissList & ArtCode & ".jpg" & Chr(13)

Kết thúc nếu

Kết thúc nếu

Kế tiếp

Kết thúc nếu

i = i + 1

Wend

Nếu MissList <> "" thì

MissList = "Bài viết sau thiếu .jpg :" & Chr(13) & MissList

MsgBox MissList, vbOKOnly

Kết thúc nếu

Thoát khỏi Sub

Bài_viết_tiếp_theo:

Tiếp tục

End Sub

Sub RefreshImage()

ActiveSheet.Pictures.Delete

Gọi hàm AddImage

End Sub

Sub DeleteImage()

ActiveSheet.Pictures.Delete

End Sub




Trả lời:

Đừng trả lời số điện thoại hỗ trợ được cung cấp trong thư trả lời, tôi vừa xóa nó đi vì đó là thư rác mà Microsoft đang cố gắng loại bỏ.

__________

Tuyên bố miễn trừ trách nhiệm:

Những câu hỏi, thảo luận, ý kiến, phản hồi và câu trả lời mà tôi tạo ra hoàn toàn là của riêng tôi và không phản ánh quan điểm của tôi với tư cách là Người điều hành tình nguyện.



Trả lời:
Lưu ý: Vấn đề của bạn nằm ở việc mã của bạn sử dụng các lệnh Active-X. Office Mac không tương thích với Active-X.

__________

Tuyên bố miễn trừ trách nhiệm:

Những câu hỏi, thảo luận, ý kiến, phản hồi và câu trả lời mà tôi tạo ra hoàn toàn là của riêng tôi và không phản ánh quan điểm của tôi với tư cách là Người điều hành tình nguyện.



Trả lời:
Dòng mã nào gây ra lỗi? Thông báo lỗi là gì?

Comments

Popular posts from this blog

Đ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ể.

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

Mở tài liệu Excel và Word từ Outlook Lỗi - Không đủ bộ nhớ