返回列表 上一主題 發帖

[發問] 另存新檔 怎麼把欄寛跟列高也複製到新表格?

Sub EX()
Dim Sht As Worksheet, xB As Workbook, N%
Application.ScreenUpdating = False
Set xB = Workbooks.Add
ThisWorkbook.Activate
For Each Sht In Sheets(Array("報價單", "請款單"))
    With Sht.Cells: .Locked = True: .FormulaHidden = True: End With
    Sht.Protect: N = N + 1
    With xB.Sheets(N): Sht.Cells.Copy .[A1]: .Name = Sht.Name: End With
    Sht.Unprotect
Next
xB.SaveAs ThisWorkbook.Path & "\" & Format(Now, "yyyymmddhhmmss") & [查表!C4], CreateBackup:=False
xB.Close
End Sub

1)將儲存格格式設為:鎖定(V)+隱藏(V)
2)複製時,將工作表設為〔保護〕,完成後再〔解除保護〕
3)這樣,公式只會貼到值,按鈕物件也不會複製過去
 
 
========================

TOP

回復 5# kkooo15

可能版本不同的關係吧! 我是用2000版,
那就多一行刪物件:
Sub EX()
Dim Sht As Worksheet, xB As Workbook, N%
Application.ScreenUpdating = False
Set xB = Workbooks.Add
ThisWorkbook.Activate
For Each Sht In Sheets(Array("報價單", "請款單"))
    With Sht.Cells: .Locked = True: .FormulaHidden = True: End With
    Sht.Protect: N = N + 1
    With xB.Sheets(N)
         Sht.Cells.Copy .[A1]
        .Name = Sht.Name
        .DrawingObjects.Delete '刪除物件
    End With
    Sht.Unprotect
Next
xB.SaveAs ThisWorkbook.Path & "\" & Format(Now, "yyyymmddhhmmss") & [查表!C4], CreateBackup:=False
xB.Close
End Sub


==============================

TOP

Sub EX3()
Dim FN$, Sht As Worksheet, xB As Workbook
FN = ThisWorkbook.Path & "\" & Format(Now, "yyyymmddhhmmss") & [查表!C4]
Set xB = Workbooks.Add
For Each Sht In ThisWorkbook.Sheets(Array("報價單", "請款單"))
    Sht.Copy Before:=xB.Sheets(1)
    With xB.Sheets(1)
         .UsedRange.Value = .UsedRange.Value
         .DrawingObjects.Delete
    End With
Next
xB.SaveAs FN, CreateBackup:=False: xB.Close
End Sub


=================================

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題