Board logo

標題: [發問] 如何單獨把excel單一sheet做輸出 [打印本頁]

作者: atuan207    時間: 2011-4-30 15:32     標題: 如何單獨把excel單一sheet做輸出

本帖最後由 atuan207 於 2011-4-30 15:33 編輯

又有問題想請教各位板上的大大了
就像上次問的,我在sheet2、sheet3建立了一個資料庫,
把資料比對後送回sheet1
sheet1最後成為要的輸出的內容
所以現在我想要單獨把sheet1做輸出另存該怎麼做
目前我找到的方式如下:

Sub output()
Application.DisplayAlerts = False
   Sheets("sheet1").UsedRange.Value = Sheets("sheet1").UsedRange.Value

   ActiveWorkbook.SaveAs Filename:="C:\Users" &  Replace(ActiveWorkbook.Name, "xlsm", "xlsx"),  FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = ture
End Sub

但這依然會把sheet2、sheet3的資料一起另存
想請問一下大大該如何做比較好???
作者: chin15    時間: 2011-4-30 20:13

你指定儲存活頁簿,當然儲存的就是整個活頁簿
指定儲存單獨工作表像這樣:
Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs "D:\abc.xls"
後面可再延伸是否把儲存好的新活頁簿關閉
作者: atuan207    時間: 2011-5-1 22:35

本帖最後由 atuan207 於 2011-5-1 22:40 編輯

感謝chin15大大的指導

確實之前範圍設定的太大了
目前是改成這樣
Sheets("Datamap").Copy
    ActiveWorkbook.SaveAs Filename:="D:\aaa.xls", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close

可以執行
感恩
作者: atuan207    時間: 2011-5-20 12:09

想再請問一下,因為我的原始excel檔是2007的
可是另存檔副檔名我想用2003的.xls
(我知道在正常存檔時按另存新檔裡面有個97-2003活頁簿)
(而我只要單獨excel報表中的sheet1,所以我做了一個按鈕做單獨的另存)

另存的檔案在開啟時都會出現"格式不符,請確認檔案是否損毀..."的字樣
但是按了"是"點選項開啟又是正常的

這樣有什麼辦法可以解決呢????
作者: GBKEE    時間: 2011-5-20 13:42

回復 4# atuan207
要單獨excel報表中的sheet1,所以我做了一個按鈕做單獨的另存
可否看看按鈕這段程式碼!
作者: atuan207    時間: 2011-5-20 13:55

回復 5# GBKEE
好的,
我是做在button上
程式碼如下
  1. Private Sub CoB另存_Click()
  2.     Sheets("Sheet1").Copy
  3.     ActiveWorkbook.SaveAs Filename:="D:\表單.xls", FileFormat:= _
  4.         xlOpenXMLWorkbook, CreateBackup:=False
  5.     ActiveWorkbook.Close
  6. End Sub
複製代碼

作者: GBKEE    時間: 2011-5-20 14:31

回復 6# atuan207
我沒有 2007 猜想是, FileFormat:=xlOpenXMLWorkbook  是存為 2007檔案的參數, 與副檔名" xls" 是2003 起衝突.
不要用FileFormat參數應可行.
  1. Private Sub CoB另存_Click()
  2.     Sheets(1).Copy   
  3.     ActiveWorkbook.SaveAs Filename:="D:\表單.xls"  
  4.     ActiveWorkbook.Close
  5. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)