Marty có một loạt sách bài tập, một số có tới 50 trang tính. Anh ta cần dán một hình ảnh (logo công ty) vào cùng một chỗ trên mỗi trang tính. Anh ấy đã cố gắng làm điều này bằng cách chọn tất cả các trang tính và sau đó dán, nhưng điều đó dường như không hoạt động trên nhiều trang tính như chỉnh sửa thông thường.

Marty nói đúng; cố gắng dán đồ họa khi bạn đã chọn nhiều trang tính không hoạt động. Khi bạn thử, Excel cho bạn biết rằng nó không thể thực hiện việc dán, nhưng nếu sau đó bạn chỉ chọn một trang tính duy nhất, bạn có thể dán khá đẹp.

Thay vào đó, bạn cần sử dụng macro để thực hiện việc dán. Giả sử rằng đồ họa đã được sao chép vào Clipboard, bạn có thể chạy một macro như sau:

Sub InsertLogo1()

Dim shtSheet As Worksheet

Application.ScreenUpdating = False     For Each shtSheet In Worksheets         With shtSheet             .Activate             .Range("A1").Select             .Paste         End With     Next     Set shtSheet = Nothing     Application.ScreenUpdating = True End Sub

Macro bước qua từng trang tính trong sổ làm việc và dán đồ họa vào ô A1. Nếu bạn muốn sử dụng một ô khác, thì tất cả những gì bạn cần làm là sửa đổi dòng chọn ô.

Nếu bạn không muốn sao chép đồ họa vào Clipboard trước thời hạn, bạn có thể sử dụng một macro như sau để chèn đồ họa trực tiếp từ tệp hình ảnh:

Sub InsertLogo2()

Dim strPath As String     Dim shtSheet As Worksheet

strPath = "C:\GraphicFolder\PictureName.bmp"



For Each shtSheet In Worksheets         shtSheet.Activate         Range("A1").Select         ActiveSheet.Pictures.Insert (strPath)

Next shtSheet     Set shtSheet = Nothing End Sub

Tất nhiên, bạn có thể sửa đổi đường dẫn đến tệp đồ họa và ô tại đó tệp được dán vào trang tính. Nếu muốn, bạn có thể sử dụng biến thể sau sẽ hiển thị hộp thoại Windows chuẩn để chọn đồ họa bạn muốn chèn:

Sub InsertLogo3()

Dim strPath As Variant     Dim shtSheet As Worksheet     Dim sTemp As String

' Set the file type     sTemp = "Graphics Files (.jpg; .bmp; .gif; .tif; *.png)"

sTemp = sTemp & ", .jpg; .bmp; .gif; .tif; *.png"

strPath = Application.GetOpenFilename(sTemp)

If strPath <> False Then         For Each shtSheet In Worksheets             shtSheet.Activate             Range("A1").Select             ActiveSheet.Pictures.Insert (strPath)

Next shtSheet         Set shtSheet = Nothing     End If End Sub

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (9205) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: