2012-06-13 127 views
0

我已關閉sheet1.xls。我在sheet2.xls VBA中工作如下。如何使用VBA格式化已關閉的Excel工作表

With Range("A:XFD") 
<I need Some Code here to format entire sheet1.xls cells into string format> 
End With 

Kinldy help.Thanks

+0

也許你需要解釋你想要的格式?給出一個例子或描述你想要做的改變。 – ja72

+0

您是否嘗試過錄制宏並查看生成的代碼? –

回答

1

像這樣的東西可以讓你格式化封閉的書。它被打開,然後格式化,然後再次關閉。

Option Explicit 
Public Sub Format_Closed_Sheet() 
    Dim sht1book As Workbook 
    Dim sht1ws As Worksheet 
    Dim strValue As String 
    Dim rng As Range 

    Application.ScreenUpdating = False 

    With Application 

    '--> Open sheet1.xls 
    Set sht1book = .Workbooks.Open _ 
    ("Path to Sheet1.xls") 
    End With 

    Set sht1ws = sht1book.Sheets("Sheet1") 

    '--> Format the range as text 

    Set rng = sht1ws.Range("A:XFD") 
    rng.NumberFormat = "@" 

    '--> Save sheet1.xls and close 
    Application.DisplayAlerts = False 
    sht1book.Save 
    sht1book.Close 
    Application.DisplayAlerts = True 

    Application.ScreenUpdating = True 
End Sub 
0

只是聲明瞭一個工作簿和工作表:

dim oBook as excel.workbook 
dim oSheet as excel.worksheet 

set oBook = workbooks.open("<workbook path and filename>") 
set oSheet = oBook.sheets("<SheetName>") 

則:

with oSheet.range("A:XFD") 
    <Format> 
end with 
oBook.close 
set oBook = nothing 
set oSheet = nothing 

等。

+0

嗨,我需要也? – logan

+0

application.screenupdating = false如果您不想看到更新發生。據我所知,如果不打開工作簿,就不可能改變事物。 – Trace

+1

做這樣的事情:http://www.ozgrid.com/forum/showthread.php?t=50691 – Trace

1

這是我會怎麼做:

Dim b As Workbook 
Dim sh As Worksheet 

Set b = Workbooks.Open("C:\mypath\mybook.xls") ' or wherever your workbook is 

Set sh = b.Sheets("Sheet1") ' or whatever sheet 
sh.Cells.NumberFormat = "@" ' format as Text 

b.Close 

如果要格式化的紙張的所有工作簿中的文字,你可以這樣做:

For Each sh In wb.Sheets 
    sh.Cells.NumberFormat = "@" ' format as Text 
Next sh 
+0

謝謝,讓我試試這個。 – logan

+0

它的工作,但問「你想保存更改mybook.xls」?我希望它被自動保存。是否有任何腳本自動保存。 THanks – logan

+0

嗨,我從上面得到它。不用了,謝謝 – logan

相關問題