مارتی یک سری کتاب کار دارد که برخی از آنها 50 کاربرگ دارند. او باید یک گرافیک (آرم شرکت) را در همان نقطه در هر کاربرگ بچسباند. او سعی کرد این کار را با انتخاب همه کاربرگها و سپس چسباندن انجام دهد، اما به نظر میرسد که این کار روی چندین کاربرگ مانند ویرایش معمولی کار نمیکند.
مارتی درست می گوید؛ تلاش برای چسباندن یک گرافیک زمانی که چندین کاربرگ انتخاب کرده اید کار نمی کند. وقتی تلاش میکنید، اکسل به شما میگوید که نمیتواند خمیر را ایجاد کند، اما اگر فقط یک کاربرگ را انتخاب کنید، میتوانید به خوبی چسباندن کنید.
در عوض، برای انجام چسباندن باید از یک ماکرو استفاده کنید. با فرض اینکه گرافیک قبلاً در کلیپ بورد کپی شده است، می توانید یک ماکرو مانند موارد زیر را اجرا کنید:
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
ماکرو از هر کاربرگ در کتاب کار عبور می کند و گرافیک را در سلول A1 می چسباند. اگر می خواهید از سلول دیگری استفاده کنید، تنها کاری که باید انجام دهید این است که خطی را که سلول را انتخاب می کند، تغییر دهید.
اگر نمی خواهید گرافیک را زودتر از موعد در کلیپ بورد کپی کنید، می توانید از یک ماکرو مانند زیر برای درج گرافیک مستقیماً از یک فایل تصویری استفاده کنید:
Sub InsertLogo2()
Dim strPath As String
Dim shtSheet As Worksheet
strPath = "C:GraphicFolderPictureName.bmp"
For Each shtSheet In Worksheets
shtSheet.Activate
Range("A1").Select
ActiveSheet.Pictures.Insert (strPath)
Next shtSheet
Set shtSheet = Nothing
End Sub
البته میتوانید مسیر فایل گرافیکی و سلولی را که فایل در آن در برگهها قرار میگیرد، تغییر دهید. در صورت تمایل، می توانید از تغییر زیر استفاده کنید که یک کادر محاوره ای استاندارد ویندوز را نمایش می دهد تا گرافیکی را که می خواهید درج کنید انتخاب کنید:
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; *.jpg"
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