返回列表 上一主題 發帖

[發問] 請問如何將指定的工作表!另存成一個新的活頁簿(.xls檔)!

[發問] 請問如何將指定的工作表!另存成一個新的活頁簿(.xls檔)!

本帖最後由 棋語鳥鳴 於 2011-11-12 14:06 編輯

請問如何利用vba新增一個.xls檔,並放入指定區域(B2),讓新增的檔案名稱為B1的文字!最後將此sheet的內容與工作表名稱放入!(應該說將此SHEET的內容另存至新的活頁簿中)
例:於C:\下產生一個"測試A.xls",並將此工作表與 測試.rar (12.81 KB) 內容放入!

回復 10# GBKEE
請問大大如果要指定2張工作表要怎麼修改
你猜!!

TOP

借用一下喔
你猜!!

TOP

本帖最後由 av8d 於 2012-9-10 10:45 編輯

回復 10# GBKEE


    大大~您好~檔案存檔位置是?

原檔執行後關閉(不存檔)
在桌面找不到另存的新檔

我下載了原作者測試檔~迎刃而解~檔案沒問題~感恩!

TOP

回復 10# GBKEE

這次測試就ok了~感謝大大不辭辛勞的修改!!

TOP

回復 9# 棋語鳥鳴
  1. Sub Ex()
  2.     Dim Bo As Workbook, Save_Name  As String, E As Object
  3.     With ActiveWorkbook             '***  要複製的活頁簿 ***
  4.                                     'ActiveWorkbook      '作用中的活頁簿
  5.                                     'ThisWorkbook        '程式碼所在的活頁簿
  6.                                     'WorkbookS(1)        '指定 開啟活頁簿中的索引值
  7.                                     'WorkbookS("Test")   '指明開啟活頁簿中的名稱'
  8.         Save_Name = .Sheets(1).[B2] & .Sheets(1).[B1] & ".xls"
  9.         .Sheets("工作表名稱").Copy     '指定複製一張工作表到新的活頁簿
  10.     End With
  11.     With ActiveWorkbook               '複製後的新活頁簿是  **作用中的活頁簿**
  12.         For Each E In .VBProject.VBComponents                       '活頁簿專案中元件的集合物件
  13.             E.CodeModule.DeleteLines 1, E.CodeModule.CountOfLines   '刪除所有的程式碼
  14.         Next
  15.         .SaveCopyAs Save_Name
  16.         .Close False                  '關閉檔案 (不存檔)
  17.     End With
  18. End Sub
複製代碼

TOP

回復 8# GBKEE
板大:不好意思,又要麻煩您修改了!
1.現在可以轉出檔案了!不過~轉出來格檔案格式不對(檔案與一開始的格式一樣,且不能開啟,要自行改成.xls才能開啟)
2.請問如果我要轉出的sheet為sheet2要如何修改其巨集,檔名和路徑還是在sheet1!

TOP

回復 7# 棋語鳥鳴
  1. Sub Ex()
  2.     Dim Bo As Workbook, E As Object, S As String
  3.     Set Bo = ActiveWorkbook
  4.     Bo.Sheets(1).Copy     '複製Sheets(1) 一張工作表到新的活頁簿
  5.     With ActiveWorkbook               '複製後的新活頁簿是  **作用中的活頁簿**
  6.         For Each E In .VBProject.VBComponents                       '活頁簿專案中元件的集合物件
  7.             E.CodeModule.DeleteLines 1, E.CodeModule.CountOfLines   '刪除所有的程式碼
  8.         Next
  9.         .SaveCopyAs .Sheets(1).[B2] & .Sheets(1).[B1] & "." & IIf(Bo.Path <> "", Split(Bo.Name, ".")(1), "xls")
  10.         .Close False                  '關閉檔案 (不存檔)
  11.     End With
  12. End Sub
複製代碼

TOP

現在變成這段==>.SaveCopyAs .Sheets(1).[B2] & .Sheets(1).[B1] & "." & Split(.Name, ".")(1)
陣列索引超出範圍!

TOP

本帖最後由 luhpro 於 2011-11-13 00:11 編輯

回復 5# 棋語鳥鳴
因為我的是 Excel 2003 相關設定的畫面是底下這樣 :

信任存取 Visual Basic 專案


至於你的 Excel 2007 畫面與位置可能有所不同,
請參閱底下這一篇文章的內容:

請問如何關掉EXCEL 2007 "設計模式"?


找找看是否是你目前的設定阻擋了程式的執行.

請留意 :
不是要你照著他的方式設定,
而是希望你能找找看你的電腦上在那個視窗裡面, (都找找看, 尤其是 "信任中心" 那個頁面內)
是否有需要你做開放或調整的設定項目.

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題