Tìm lỗi khi Record Macro tạo 1 shape

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phansythao

Thành viên chính thức
Tham gia
21/8/17
Bài viết
52
Được thích
16
Giới tính
Nam
Chào Anh/Chị:
Em có record 1 macro tạo 1 khung chữ ký, nhưng khi chạy thì macro báo lỗi ngay ở dòng tạo shape.
Sub Macro3()
Range("M25:R29").Select
Selection.Copy
ActiveSheet.Shapes.AddShape(1, 15.6, 993.6, 72#, 72#).Select
ActiveSheet.Shapes.Range(Array("Picture 8")).Select
Application.CutCopyMode = False
End Sub
screenshot_1687849686.png
Lệnh selection.copy được thực hiện thủ công bằng chức năng camera trên excel
screenshot_1687849618.png

Mục đích: Em muốn link khung tên add theo dạng shape để tạo kích thước tùy chỉnh
Dán vào cuối trang A4 để in ấn
Khi thực hiện bằng tay thì được nhưng làm thủ công lại bị lỗi.
Mong anh chị biết giải đáp giúp em, thanks nhiều ạ.
 

File đính kèm

  • Screen Shot 27-06-2023 at 1.47 CH.png
    Screen Shot 27-06-2023 at 1.47 CH.png
    40.1 KB · Đọc: 18
Hiu hiu không ai giúp .
 
Upvote 0
Lưu as picture sau đó insert picture...
Mã:
Sub Macro1()
    ActiveSheet.Pictures.Insert( _
        "C:\Users\Administrator\Desktop\FileExcel\ChuKy.png").Select
End Sub
 

File đính kèm

  • Book222.xlsx
    21.8 KB · Đọc: 3
Upvote 0
Lưu as picture sau đó insert picture...
Mã:
Sub Macro1()
    ActiveSheet.Pictures.Insert( _
        "C:\Users\Administrator\Desktop\FileExcel\ChuKy.png").Select
End Sub
vậy thì nó thêm 1 bước nữa hả bác.
Sao ko có chạy code paste trực tiếp trên excel sau khi copy nhỉ Bác
 
Upvote 0
Khi thực hiện bằng tay thì được nhưng làm thủ công lại bị lỗi.
Không hiểu kiểu gì luôn :D
Công cụ camera là công cụ ẩn, nhiều người còn không biết tới nó
Bạn thử code này:
Mã:
Sub TestCamera()
    Range("A1:C2").CopyPicture xlScreen, xlBitmap
    Range("A5").PasteSpecial
    Application.CutCopyMode = False
End Sub
 

File đính kèm

  • TestCameraTool.xlsm
    13.2 KB · Đọc: 4
Upvote 0
vậy thì nó thêm 1 bước nữa hả bác.
Thường thì ta chụp 1 ảnh, lưu vào chỗ nào đô, trước khi in thì insert vào ..
Không thì copy rồi dán picture
Mã:
Sub Macro2()
    Range("I44:L64").Copy
    Range("f90").Select
    ActiveSheet.Pictures.Paste.Select
End Sub
thu marco xong chỉnh lại 1 chút là được...
 
Upvote 0
B thử xem có đúng ý không!. Quét chọn 1 vùng bất kỳ, ấn tổ hợp phím Ctrl + Shift + C nó sẽ ra hình muốn copy. Hình ảnh sẽ link vào vùng copy khi vùng thay đổi giá trị Ảnh thay đổi theo
Mã:
Sub Copy_Clipboard()
    Dim ar1, ar2, strAdress As String
    With Selection ' Xac dinh dia chi vung
        ar1 = Split(Cells(1, .Cells(1).Column).Address, "$")
        ar2 = Split(Cells(1, .Cells(.Count).Column).Address, "$")
        If .Count = 1 Then
            strAdress = "$" & ar1(1) & "$" & .Cells(1).Row
        Else
            strAdress = "$" & ar1(1) & "$" & .Cells(1).Row & ":$" & ar2(1) & "$" & .Cells(.Count).Row
        End If
    End With
    
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Formula = "=" & strAdress
End Sub

Sub Auto_Open()
    Application.OnKey "^+{C}", "Copy_Clipboard"
End Sub
 
Upvote 0
@Mr.hieudoanxd Dạ cám ơn Bác em đã áp dụng, chỉnh sửa dựa trên code của Bác rồi.
Chúc Bác sức khỏe ạ.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom