標題:
[發問]
請問如何將指定的工作表!另存成一個新的活頁簿(.xls檔)!
[打印本頁]
作者:
棋語鳥鳴
時間:
2011-11-12 13:54
標題:
請問如何將指定的工作表!另存成一個新的活頁簿(.xls檔)!
本帖最後由 棋語鳥鳴 於 2011-11-12 14:06 編輯
請問如何利用vba新增一個.xls檔,並放入指定區域(B2),讓新增的檔案名稱為B1的文字!最後將此sheet的內容與工作表名稱放入!(應該說將此SHEET的內容另存至新的活頁簿中)
例:於C:\下產生一個"測試A.xls",並將此工作表與[attach]8509[/attach]內容放入!
作者:
GBKEE
時間:
2011-11-12 15:06
回復
1#
棋語鳥鳴
Sub Ex()
With ActiveWorkbook '作用中的活頁簿
'ThisWorkbook '程式碼所在的活頁簿
'WorkbookS(1) '指定 開啟活頁簿中的索引值
'WorkbookS("Test") '指明開啟活頁簿中的名稱
.SaveCopyAs Sheets(1).[B2] & Sheets(1).[B1] & "." & Split(.Name, ".")(1)
'.SaveCopyAs 另存新檔的方法
'Split(.Name, ".")(1) ->傳回活頁簿的副檔名
End With
End Sub
複製代碼
作者:
棋語鳥鳴
時間:
2011-11-12 18:09
本帖最後由 棋語鳥鳴 於 2011-11-12 18:13 編輯
回復
2#
GBKEE
請問"GBKEE"大大,
1.如何修改此巨集,讓它只另存指定的sheet(單一個sheet)就好,而不要整個檔案都過去(巨集也不要過去)!
2.如何將此檔案變成2003的.xls格式?
作者:
GBKEE
時間:
2011-11-12 19:19
回復
3#
棋語鳥鳴
Option Explicit
Sub Ex()
Dim E As Object
ActiveWorkbook.Sheets(1).Copy '複製Sheets(1) 一張工作表到新的活頁簿
With ActiveWorkbook '複製後的新活頁簿是 **作用中的活頁簿**
For Each E In .VBProject.VBComponents '活頁簿專案中元件的集合物件
E.CodeModule.DeleteLines 1, E.CodeModule.CountOfLines '刪除所有的程式碼
Next
.SaveCopyAs .Sheets(1).[B2] & .Sheets(1).[B1] & "." & Split(.Name, ".")(1)
.Close False '關閉檔案 (不存檔)
End With
End Sub
複製代碼
作者:
棋語鳥鳴
時間:
2011-11-12 22:15
回復
4#
GBKEE
這句不知哪裡出錯==>For Each E In .VBProject.VBComponents '活頁簿專案中元件的集合物件
出現錯誤1004:
不信任以程式設計方式存取visual Basic專案
作者:
luhpro
時間:
2011-11-12 23:58
本帖最後由 luhpro 於 2011-11-13 00:11 編輯
回復
5#
棋語鳥鳴
因為我的是 Excel 2003 相關設定的畫面是底下這樣 :
信任存取 Visual Basic 專案
[attach]8513[/attach]
至於你的 Excel 2007 畫面與位置可能有所不同,
請參閱底下這一篇文章的內容:
請問如何關掉EXCEL 2007 "設計模式"?
找找看是否是你目前的設定阻擋了程式的執行.
請留意 :
不是要你照著他的方式設定,
而是希望你能找找看你的電腦上在那個視窗裡面, (都找找看, 尤其是 "信任中心" 那個頁面內)
是否有需要你做開放或調整的設定項目.
作者:
棋語鳥鳴
時間:
2011-11-13 06:42
現在變成這段==>.SaveCopyAs .Sheets(1).[B2] & .Sheets(1).[B1] & "." & Split(.Name, ".")(1)
陣列索引超出範圍!
作者:
GBKEE
時間:
2011-11-13 07:23
回復
7#
棋語鳥鳴
Sub Ex()
Dim Bo As Workbook, E As Object, S As String
Set Bo = ActiveWorkbook
Bo.Sheets(1).Copy '複製Sheets(1) 一張工作表到新的活頁簿
With ActiveWorkbook '複製後的新活頁簿是 **作用中的活頁簿**
For Each E In .VBProject.VBComponents '活頁簿專案中元件的集合物件
E.CodeModule.DeleteLines 1, E.CodeModule.CountOfLines '刪除所有的程式碼
Next
.SaveCopyAs .Sheets(1).[B2] & .Sheets(1).[B1] & "." & IIf(Bo.Path <> "", Split(Bo.Name, ".")(1), "xls")
.Close False '關閉檔案 (不存檔)
End With
End Sub
複製代碼
作者:
棋語鳥鳴
時間:
2011-11-13 08:32
回復
8#
GBKEE
板大:不好意思,又要麻煩您修改了!
1.現在可以轉出檔案了!不過~轉出來格檔案格式不對(檔案與一開始的格式一樣,且不能開啟,要自行改成.xls才能開啟)
2.請問如果我要轉出的sheet為sheet2要如何修改其巨集,檔名和路徑還是在sheet1!
作者:
GBKEE
時間:
2011-11-13 09:53
回復
9#
棋語鳥鳴
Sub Ex()
Dim Bo As Workbook, Save_Name As String, E As Object
With ActiveWorkbook '*** 要複製的活頁簿 ***
'ActiveWorkbook '作用中的活頁簿
'ThisWorkbook '程式碼所在的活頁簿
'WorkbookS(1) '指定 開啟活頁簿中的索引值
'WorkbookS("Test") '指明開啟活頁簿中的名稱'
Save_Name = .Sheets(1).[B2] & .Sheets(1).[B1] & ".xls"
.Sheets("工作表名稱").Copy '指定複製一張工作表到新的活頁簿
End With
With ActiveWorkbook '複製後的新活頁簿是 **作用中的活頁簿**
For Each E In .VBProject.VBComponents '活頁簿專案中元件的集合物件
E.CodeModule.DeleteLines 1, E.CodeModule.CountOfLines '刪除所有的程式碼
Next
.SaveCopyAs Save_Name
.Close False '關閉檔案 (不存檔)
End With
End Sub
複製代碼
作者:
棋語鳥鳴
時間:
2011-11-13 11:07
回復
10#
GBKEE
這次測試就ok了~感謝大大不辭辛勞的修改!!
作者:
av8d
時間:
2012-9-10 10:15
本帖最後由 av8d 於 2012-9-10 10:45 編輯
回復
10#
GBKEE
大大~您好~檔案存檔位置是?
原檔執行後關閉(不存檔)
在桌面找不到另存的新檔
我下載了原作者測試檔~迎刃而解~檔案沒問題~感恩!
作者:
bear0925900003
時間:
2014-3-13 19:11
借用一下喔
作者:
bear0925900003
時間:
2014-3-14 00:26
回復
10#
GBKEE
請問大大如果要指定2張工作表要怎麼修改
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)