我想自动格式化具有特定条件的电子表格。在进程完成时,工作表行应自动格式化(即备用行具有相同的单元格背景颜色)和标题行(通常为行1),颜色和字体颜色不同。
注意:这需要由VBA代码完成。
另请注意,需要对包含数据的“n”行进行格式化,其余行留空。
我的页面布局代码,
Public Function SetPageLayout(pworksheet)
'Set the page layout of the worksheet to be landscape and format to fit1 page
With Sheets(pworksheet).PageSetup
.PaperSize = xlPaperA4
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.LeftMargin = Application.CentimetersToPoints(1)
.RightMargin = Application.CentimetersToPoints(1)
.TopMargin = Application.CentimetersToPoints(1)
.BottomMargin = Application.CentimetersToPoints(1)
End With
End Function
答案 0 :(得分:2)
记录 Alt + O,A 。哪个给你
Selection.AutoFormat Format:=xlRangeAutoFormatList1, Number:=True, Font:= _
True, Alignment:=True, Border:=True, Pattern:=True, Width:=True
记录excel宏录制器中的步骤。你必须重写一下,因为它使用了一种vbs没有的语法。
这在vba中适用(我没有medium9)xlRangeAutoFormatAccounting4。
Selection.AutoFormat Format:=xlRangeAutoFormatAccounting4, Number:=True, _
Font:=True, Alignment:=True, Border:=True, Pattern:=True, Width:=True
首先在vba的对象浏览器中查找常量。 xlRangeAutoFormatAccounting4 = 17
然后在对象浏览器中查看该函数,并查看函数定义的底部。
Function AutoFormat([Format As XlRangeAutoFormat = xlRangeAutoFormatClassic1], [Number], [Font], [Alignment], [Border], [Pattern], [Width])
所以vba变成vbs(和vbs在vba中工作)(正如你所看到的,你可以通过正确的方式计算出来,而不需要通常查看函数)
Selection.AutoFormat 17, True, True, True,True, True, True
所以你的代码变成了
objXLWs.Range("A3").CurrentRegion.Select.AutoFormat 17, True, True, True,True, True, True
您正在使用Excel,您可以将其记录在Excel中并让Excel编写您的代码。
Alt + T,M,R
然后 主页键,然后向上箭头。停止录音。看看Excel写的是什么
Selection.End(xlUp).Select
或者您是否有录制的“转到”对话框
Application.Goto Reference:="R1C1"
或者您已录制了Ctrl + Home
Range("A1").Select