Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 如何减少格式化多个表的重复次数?_Excel_Vba_Optimization_Formatting - Fatal编程技术网

Excel 如何减少格式化多个表的重复次数?

Excel 如何减少格式化多个表的重复次数?,excel,vba,optimization,formatting,Excel,Vba,Optimization,Formatting,我有一个很好的表格,里面有一个VBA代码,可以自动填充表格并对其进行格式化(我已经做了很长时间了) 这很好,很快,工作很好,但是当我看代码时,有几十行关于单元格格式的内容 有没有一种方法可以优化这一点,使人类的眼睛/大脑更容易接受 我让你看看: Application.DisplayAlerts=False'在单元格已满的情况下停用警报 范围为(“A”&PosStartLine+(TPICode*3)-3&“:A”&PosStartLine+(TPICode*3)-1) .选择 .Value=F

我有一个很好的表格,里面有一个VBA代码,可以自动填充表格并对其进行格式化(我已经做了很长时间了)

这很好,很快,工作很好,但是当我看代码时,有几十行关于单元格格式的内容

有没有一种方法可以优化这一点,使人类的眼睛/大脑更容易接受

我让你看看:

Application.DisplayAlerts=False'在单元格已满的情况下停用警报
范围为(“A”&PosStartLine+(TPICode*3)-3&“:A”&PosStartLine+(TPICode*3)-1)
.选择
.Value=FullTPICode
.Interior.Color=RGB(220230241)
.HorizontalAlignment=xlCenter
.垂直对齐=xlCenter
.Borders.LineStyle=xlContinuous
.Font.Size=11
.Font.Bold=True
.Merge“合并3个单元格
.EntireRow.Borders(xlEdgeTop)。重量=xlMedium
.EntireRow.Borders(xlEdgeBottom)。重量=XleMedium
以
Application.DisplayAlerts=True
“在下一个专栏中写下细节(既然我们在那里……为什么不呢?)
带有工作表(RealData).Range(“B”和PosStartLine+(TPICode*3)-3)
.选择
.Value=“Nb车辆完成”
.HorizontalAlignment=xlLeft
.垂直对齐=xlCenter
.Interior.Color=RGB(216228188)
.Borders.LineStyle=xlContinuous
.Font.Size=11
以
使用ActiveCell.Offset(1,0)
.Value=“Nb车辆左侧”
.HorizontalAlignment=xlLeft
.垂直对齐=xlCenter
.Interior.Color=RGB(217217217217)
.Borders.LineStyle=xlContinuous
.Font.Size=11
以
使用ActiveCell.Offset(2,0)
.Value=“价格”
.HorizontalAlignment=xlLeft
.垂直对齐=xlCenter
.Interior.Color=RGB(252213180)
.Borders.LineStyle=xlContinuous
.全自动装配
.Font.Size=11
以
其他地方:

工作表(RealDataReg)。激活
使用工作表(RealDataReg).Range(拆分(单元格(1,PosStartColumn).地址,“$”(1)和PosStartLine+(TPICode*3)-3&“:”和_
拆分(单元格(1,PosStartColumn+61)。地址,“$”(1)和PosStartLine+(TPICode*3)-3)
.HorizontalAlignment=xlRight
.垂直对齐=xlCenter
.Interior.Color=RGB(235241222)
.Borders.LineStyle=xlContinuous
.Font.Size=11
以
使用工作表(RealDataReg).Range(拆分(单元格(1,PosStartColumn).地址,“$”(1)和PosStartLine+(TPICode*3)-2&“:”和_
拆分(单元格(1,PosStartColumn+61)。地址,“$”(1)和PosStartLine+(TPICode*3)-2)
.HorizontalAlignment=xlRight
.垂直对齐=xlCenter
.Interior.Color=RGB(242、242、242)
.Borders.LineStyle=xlContinuous
.Font.Size=11
以
使用工作表(RealDataReg).Range(拆分(单元格(1,PosStartColumn).地址,“$”(1)和PosStartLine+(TPICode*3)-1&“:”和_
拆分(单元格(1,PosStartColumn+61)。地址,“$”(1)和PosStartLine+(TPICode*3)-1)
.HorizontalAlignment=xlRight
.垂直对齐=xlCenter
.Interior.Color=RGB(25323217)
.Borders.LineStyle=xlContinuous
.Font.Size=11
以
'将计算结果放入表格的最后一个单元格
带工作表(RealDataReg)
.Cells(PosStartLine+(TPICode*3)-3,PosStartColumn+61)。公式=“=SUM(&”_
.Cells(PosStartLine+(TPICode*3)-3,PosStartColumn+1)。地址(False,False)&“&”_
.Cells(PosStartLine+(TPICode*3)-3,拆分(Cells(1,PosStartColumn+60)。地址,“$”(1))。地址(False,False)&“
以
'使用计算设置单元格格式
带有工作表(RealDataReg).Range(拆分(单元格(1,PosStartColumn+61).地址,“$”)(1)和PosStartLine+(TPICode*3)-3)
.HorizontalAlignment=xlRight
.垂直对齐=xlCenter
.Interior.Color=RGB(216228188)
.Borders.LineStyle=xlContinuous
.Font.Size=11
.选择
以
等等,等等

有人知道一个聪明的方法来提高所有这些格式的效率。更好吗?正如你可能看到的,格式每次都非常相似,但会出现一些小的差异(颜色、边框、范围等)


我想做一个我将调用的函数,但我必须给它所有相同的信息,所以,我想这是毫无意义的。。。 例如,如果我使用此格式化块:

带有工作表(RealDataReg).Range(拆分(单元格(1,PosStartColumn).地址,“$”(1)和PosStartLine+(TPICode*3)-3&“:”&_
拆分(单元格(1,PosStartColumn+61)。地址,“$”(1)和PosStartLine+(TPICode*3)-3)
.HorizontalAlignment=xlRight
.垂直对齐=xlCenter
.Interior.Color=RGB(235241222)
.Borders.LineStyle=xlContinuous
.Font.Size=11
以
它会变成这样:

调用FormatFunction(工作表(RealDataReg)、范围(拆分(单元格(1,PosStartColumn).地址,“$”(1)和PosStartLine+(TPICode*3)-3&“:”&_
拆分(单元格(1,PosStartLine+61)。地址,“$”(1)和PosStartLine+(TPICode*3)-3),xlRight,xlCenter,(235,241,222),xlContinuous,11))
但是,当然,在某些情况下会有一些不需要的参数,所以在传递参数时,我必须“瞄准好的参数”。。。使用标准VBA格式更容易,我想

我想有一个标准的聪明方法可以做到这一点,但我在谷歌上找不到任何东西(它只是给我关于如何格式化表格的结果,但我已经知道:D)


提前谢谢

也许有人会证明我错了