返回列表 上一主題 發帖

有關插入圖片的問題

回復 16# GBKEE

啊!我懂了,版大就是比較聰明(狗腿),把貼上的圖片加上編號,就可以準確控制已貼上圖片的移動位置,也就不會移動到其他圖片了。

TOP

回復 16# GBKEE
抱歉!狗腿是有目的的,還有一個未解開的問題要請教!
小弟的構想是想要在成績輸入完成之後另存新檔,也在本論壇和網路上做過功課,修改後的語法如下
Sub macor24()
Dim a, b, u, v, r, n As String
    a = Sheets("基本設定").Range("a6").Value
    b = Sheets("基本設定").Range("a8").Value
    u = Sheets("基本設定").Range("j1").Value
    v = Sheets("基本設定").Range("j2").Value
    r = "C:\Documents and Settings\Administrator\桌面\"
    n = a & "學年度" & b & "學期" & u & "年" & v & "班成績檔"
    Sheets("成績儲存").Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=r & n & ".xlsx", _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    ThisWorkbook.Close savechanges:=True
End Sub
也如預期般可以在桌面存成另一個新檔,但是問題來了,因為這個工作表內有vba程式語法,所以另存新檔後,便會出現問題,就是有些語法會超出範圍,想請教一下,在複製工作表時有無選項,可以不用複製到裡面的語法嗎?再次感謝!

TOP

回復 19# GBKEE
版大您好!百忙之中又打擾了。您給的語法執行之後,還是會有語法在(所以會產生錯誤),而另外一個舊網頁所談的刪除工作表的巨集語法,在vba好像不能使用,最後小弟繞了一條遠路。就是:
1.先新增一新工作表
2.複製要複製的工作表
3.貼上時使用有條件的貼上選項(這樣就不上複製到工作表內的語法了)
PasteSpecial Paste:=xlPasteValues
PasteSpecial Paste:=xlPasteFormats
4.然後就是之前的語法
全部是
Sub macor24()
    '解除保護「成績儲存」表格↓'
    Sheets("成績儲存").Unprotect Password:="6323"
    ActiveWorkbook.Unprotect Password:="6323"
    '解除保護「成績儲存」表格↑'
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets("成績儲存").Activate
    Sheets("成績儲存").Cells.Copy
    Sheets(Sheets.Count).Range("a1").PasteSpecial Paste:=xlPasteValues
    Sheets("成績儲存").Activate
    Sheets("成績儲存").Cells.Copy
    Sheets(Sheets.Count).Range("a1").PasteSpecial Paste:=xlPasteFormats
    Dim a, b, u, v, r, n As String
    a = Sheets("基本設定").Range("a6").Value
    b = Sheets("基本設定").Range("a8").Value
    u = Sheets("基本設定").Range("j1").Value
    v = Sheets("基本設定").Range("j2").Value
    r = "C:\Documents and Settings\Administrator\桌面\"
    n = a & "學年度" & b & "學期" & u & "年" & v & "班成績檔"
    Sheets(Sheets.Count).Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=r & n & ".xls", _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    Workbooks(1).Activate
    Sheets(Sheets.Count).Delete
    '保護「成績儲存」表格↓'
    Sheets("成績儲存").Activate
    ActiveSheet.EnableSelection = xlUnlockedCells
    Sheets("成績儲存").Protect Password:="6323"
    ActiveWorkbook.Protect Password:="6323"
    '保護「成績儲存」表格↑'
    Workbooks(2).Activate
    ActiveWorkbook.Close savechanges:=True
End Sub
(抱歉!不是班門弄斧啦,想說以後有人需要,可以參考一下。)

TOP

最後還是要說明一下!小弟的成績系統到目前為止可以說是全部完成。小弟的參考書目是:1.EXCEL超圖解VBA基礎講座2.EXCELVBA功能索引式參考手冊
另外要感謝的是兩位版大,一位是GBKEE一位是Hseih,還有論壇上各位熱心的先進,很多語法的知識,是在書上沒有辦法找到,如果沒有大家的協助,小弟可能要再花上更多的時間也無法完成,在這個你我不相識的網路世界,真是難能可貴之事,在此要再次表達感謝之意。謝謝大家的幫忙!(不是得獎感言啦)

TOP

回復 21# GBKEE
版大你誤解了,因為那個工作表「成績儲存」,裡面的語法會需要其他工作表的資料,所以另存新檔後(重新建立一個只有工作表的檔案),語法就會出現超出索引值範圍(因為其他工作表不見了),所以並不是語法上的錯誤。

TOP

回復 24# GBKEE [
回版大,這個語法執行之後,另存的那個檔案裡面還是會有原來的語法存在。

TOP

回復 26# GBKEE
版大實在是太熱心了,鍥而不捨終於測試成功了,最後這個可以,檔案內已無巨集!

TOP

回復 27# skyutm
版大您這麼一認真起來,我倒是有些被搞迷糊了。我比較了前後兩個語法只差在
Option Explicit
.Close
Workbooks.Open ("d:\無巨集.xlsx")
這三行而已,而我不懂,為何這樣語法的差異會造成不同的結果?

TOP

回復 29# GBKEE
回復版大,問題還是存在耶,因為剛剛實驗時是在新的檔案裡加幾行語法,結果檔案關閉後再重開語法就不見了。等到我運用在自己的成績系統之後,問題就出現了。因為被複製的工作表語法是寫在Worksheet_Activate裡,所以只要複製檔案時,還未關閉,語法錯誤行就會出現(還來不及關閉)。
後來我又想出一個辦法,就是在被複製的工作表語法裡面,加一行On Error Resume Next,這樣就可以解決了。(不知這樣有無風險嗎?)

TOP

回復 31# GBKEE
版大您好!再次感謝。附上檔案。工作表是「成績儲存」它是「學籍簿」工作表的複製。巨集是macro24

新路成績系統.rar (379.76 KB)

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題