2012-06-13 80 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

相关问题