Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel vba:刷新页面格式而不保存_Vba_Excel - Fatal编程技术网

Excel vba:刷新页面格式而不保存

Excel vba:刷新页面格式而不保存,vba,excel,Vba,Excel,我有一个vba代码,它将从现有工作表创建一个新工作簿,然后编辑此新工作表上的格式,以删除多余的信息并使其更易于打印。(我只需移动/删除/创建单元格、行和列) 如果我不保存并尝试使用“将所有列调整为一页”选项打印此新工作表,则所有列大小都将使用工作表的原始列大小 但是,如果我保存,它会将列大小更新为实际编辑的大小 有没有一种方法可以在不保存的情况下刷新页面格式 编辑:这是一个非常紧凑的代码版本: Sub SmallPsetup() Dim OrderBook As Workbook Dim Ref

我有一个vba代码,它将从现有工作表创建一个新工作簿,然后编辑此新工作表上的格式,以删除多余的信息并使其更易于打印。(我只需移动/删除/创建单元格、行和列)

如果我不保存并尝试使用“将所有列调整为一页”选项打印此新工作表,则所有列大小都将使用工作表的原始列大小

但是,如果我保存,它会将列大小更新为实际编辑的大小

有没有一种方法可以在不保存的情况下刷新页面格式

编辑:这是一个非常紧凑的代码版本:

Sub SmallPsetup()
Dim OrderBook As Workbook
Dim RefBook As Workbook
Set RefBook = Application.ActiveWorkbook
Set OrderBook = Workbooks.Add
' Copy sheet
RefBook.Sheets("MySheet").Copy Before:=OrderBook.Sheets(1)
' Remove superfluous/incomplete information
ActiveSheet.Columns("Q:AZ").Delete
End Sub

你能试试ActiveSheet.UsedRange吗?它将强制Excel重新调用
UsedRange
()@囚犯:这正是我所需要的。@Jean PierreOosthuizen:在我的代码中,我确实将
屏幕更新设置为
False
,然后再设置为
True
,但该命令似乎对这个主题没有影响,我还试图移动
活动表。在
应用程序之前使用drange
。屏幕更新=True
这将仍然正确地刷新列宽。Jonathan很好,我很高兴@Capture可以帮助您使代码正常工作。