1. 赋值粘贴
通过excel录制宏功能,大概知道了vba中实现相关操作的函数是:copy()
和paste
Sub 宏1()
ActiveWindow.SmallScroll Down:=-12
Range("A6:H23").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=3
Range("A30").Select
ActiveSheet.Paste
End Sub
去MSDN搜搜,看具体的用法是什么,
- 关于copy方法,参考Docs/Office/ VBA /Reference /Excel /Objec /model /Range object /Methods/ Copy
:Range对象可以使用这个方法。 - 关于paste方法,刚刚刚好导航到了Range对象的方法目录,就往下拉了下,没有看到单纯的
paste
方法,而是看到了一个叫PasteSpecial
的方法,参考Docs/Office/ VBA /Reference /Excel /Objec /model /Range object /Methods/PasteSpecial
使用这两个方法的大致代码(下面示例的意思是:将A5-H20的区域复制,放到A30开始的地方)
ws.Range("A5:H20").Copy()
ws.Range("A30").PasteSpecial()
2. pywin32 通过python调用excel使用公式
如果公式位置是确定的,直接在excel表里写死是最简单的,如果不确定,再考虑使用代码完成。
授人以鱼不如授人以渔:
现在面对通过pywin32调用python来操作excel这个问题,首先去搜索 “如何使用vba完成XX” 找到完成相关功能的函数,再去MSDN搜索对应的文档就好了
例如:
- 搜索
VBA 公式
参考VBA|输入公式和使用函数
- 搜索
MSDN excel formula
:
参考Docs/Office VBA Reference/Excel/Object model/Range object/Properties/ Formula/
和搜到的博客差不多,反正后面值是用字符串形式表示的。
除了Formula
属性,还有这些是和公式相关的属性。
3. 单元格内容水平居中
通过录制可知,相应的控制属性为:.HorizontalAlignment
,参考MSDN-Range HorizontalAlignment可知,基本用法为:
ws.Range("A20:B30").HorizontalAlignment=-4108
关于对齐方式属性,可以点击https://docs.microsoft.com/en-us/office/vba/api/excel.xlhalign这个网页。