我有一個奇怪的問題。我以前每天都沒有幾份報告。VBA替換Excel文件中的徽標
所有這些都在Excel中,並在每個文件的所有表中都有公司的標識。
但是,現在公司名稱已更改,因此需要更換新徽標以代替現有徽標。希望檢查這個替換是否可以用VBA完成。
我試着用application.shapes方法。但是,讓人感到困惑的是要繼續前進。
我有一個奇怪的問題。我以前每天都沒有幾份報告。VBA替換Excel文件中的徽標
所有這些都在Excel中,並在每個文件的所有表中都有公司的標識。
但是,現在公司名稱已更改,因此需要更換新徽標以代替現有徽標。希望檢查這個替換是否可以用VBA完成。
我試着用application.shapes方法。但是,讓人感到困惑的是要繼續前進。
試試這個....
Sub ChangePicture(strNewPath As String)
Dim oOld As Picture
Dim oNew As Picture
Set oOld = ActiveSheet.Pictures(1)
Set oNew = ActiveSheet.Pictures.Insert(strNewPath)
oNew.Left = oOld.Left
oNew.Top = oOld.Top
oNew.Width = oOld.Width
oNew.Height = oOld.Height
oOld.Delete
End Sub
嗨內森,感謝這個美好的計劃。它的工作正常。但是,如果同一工作簿中有多個工作表,我是否需要使用for循環?另外,如果工作表不包含徽標? – user3228901
顯式的選項 公共MyFile的作爲字符串 公共停止由於布爾 副主() 停止=假 UserForm1.Show(vbamodless) 如果停止然後退出子 MSGBOX MyFile的 呼叫ChangePicture 「等等 結束子 子ChangePicture() 昏暗oOld圖片與 昏暗ONEW圖片與 昏暗WS作爲工作表 對於每個WS在Application.ActiveWorkbook 集oOld = ActiveSheet.Pictures(1) 集ONEW = ActiveSheet.Pictures.Insert(文件路徑) oNew.Left = oOld.Left oNew.Top = oOld.Top oNew.Width = oOld.Width oNew.Height = oOld.Height oOld.Delete 下一頁ws End Sub – user3228901
上述代碼已根據您提供的程序進行了更新。我想檢查每張紙上是否存在徽標,然後用新的徽標替換。但上面的代碼僅適用於工作簿的第一個工作表 – user3228901
嘗試記錄做自己然後看看生成的代碼。 –
每張紙上有多少個形狀?您是否在所有出現的地方將該徽標命名爲相同? –
嗨Sha ...我有一個標誌......它被粘貼在報告的所有表格中。每份報告都有多張從2張到10張不等的單張。謝謝 – user3228901