2013-05-15 60 views
0

以下代碼在理論上應該從Access運行時調整我的Excel表格大小。運行時我沒有收到任何錯誤,但我的excel文件中的表格沒有調整到工作表中的所有數據的大小。任何幫助深表感謝!在Excel中調整表格大小Access

Dim appExcel As Object 
Dim stWorkbook As Object 
Dim varName 
Set appExcel = CreateObject("Excel.Application") 
Set stWorkbook = appExcel.Workbooks.Open("G:\Home\RiskMgtReports\Reporting  Database\Excel\DealerProfit.xlsx") 

For Each varName In Array("DLR_ALL", "DLR_ACTIVE_DESC", "DLR_ACTIVE_ALPHA", "DLR_ACTIVE_UPF", "DLR_TERM_ALPHA", "DLR_TERM_DESC") 
With stWorkbook.Worksheets(varName).ListObjects("tbl" & varName) 
    .Resize stWorkbook.Worksheets(varName).Range(varName) 
    With .DataBodyRange 
    .Interior.Pattern = xlNone 
    .Borders.LineStyle = xlNone 
    End With 
End With 
Next varName 

stWorkbook.Close SaveChanges:=True 
appExcel.Quit 
Set appExcel = Nothing 
+0

代碼是否在Excel VBA中工作?桌子調整大小了嗎? – steveo40

+0

我確實從excel中嘗試了這一點,但它在那裏不起作用。我已經在Access中工作了幾次,但現在它不再工作。我無法弄清楚爲什麼它的工作幾次,現在沒有。 – chris

+0

您是否確定Range(varName)與Listobject(「tbl」&varName)的大小不同?您可以再次嘗試Excel中的代碼,並使用Range(varName).select精確查看該範圍的大小。 – steveo40

回答

0

它也許不是VBA編寫的,但有它確實sheet.Columns.AutoFit(); sheet.Rows.AutoFit();也許類似的東西存在VBA一個C#解決方案。似乎它接近我在這裏找到的:http://www.vbaexpress.com/kb/getarticle.php?kb_id=40在這種情況下:Cells.EntireColumn.AutoFit

+0

感謝您的留言。我實際上想要做的是擴展Excel表格,以便所有數據都在表格內。 – chris

+0

我不知道如何將它粘貼到Excel中,但我曾經做過的事情是,當用PasteSpecial粘貼代表表格的HTML代碼到Excel中時,Excel本身從HTML代碼創建了一個Excel表格。在你的情況下,如果你想擴展表,你可以用其他方式來代替列,也許你會適合行。 – mike27015