分享

(1)vba excel in mac(超级基础以及杂乱的记录而已)

 天蝎的天空 2015-01-06

vba excel in mac(超级基础以及杂乱的记录而已)

(2014-07-25 03:43:02)
标签:

coding

cs

分类: 吸露群
才意识到我其实应该把用过的功能记下来,这样就不用每次要用都到处去查找了。虽然python我已经懒得记录了,但是刚准备学这个也许还是可以尝试一下的。这以下的内容我也不知道会是什么。。。

以及吐槽下我自己。。拿mac搞excel vba真是找死= =
 

首先参考博客:vba excel编程三日谈 开始学习之路~

然后设置如何在mac中打开vba编辑器:MS EXCEL: OPEN THE VISUAL BASIC EDITOR IN EXCEL 2011 FOR MAC

Sub 设置隔行背景色()
'设定背景色颜色
    Const Gray = 10
‘选定开始的一排为A2
    Range("A2").EntireRow.Select
‘直到遇到空cell之前一直循环
    Do While ActiveCell.Value <> ""
‘将选定行涂成指定背景色
        Selection.Interior.ColorIndex = Gray
‘将活动单元格下移两排
        ActiveCell.Offset(2, 0).EntireRow.Select
    Loop
    
End Sub

1. 关键词Sub...End Sub开始和结束宏,格式为:
Sub 宏名()
<代码>
End Sub

一个子程序由一组代码语句组成,以Sub开始,End Sub结束。子程序不一定是宏。可以从一个子程序中调用另一个子程序,例:
Sub 我的第一个宏()
我的第二个宏()
End Sub

2. Excel对象模型使用面向对象编程。例:
Set ws = ActiveWorkbook.Worksheets.Add
Range("A1").Value = "I am a student."
这里有3个对象,ws代表Worksheet对象,ActiveWorkbook对象代表当前工作簿,Range对象代表在当前工作表中的单元格区域。

当第一次使用某对象变量时,以Set关键字开始,为该对象分配所需的内存空间,并可为对象变量命名,如ws。
方法总是与对象相关联。如“我的第一个宏”中包含一个add的方法,它与ws对象相关。使用方法时,应在对象和方法之间添加一个句点,例:worksheet.add。在上面的代码中,使用Add方法在活动工作簿中添加了一个新的工作表。
属性也总是与对象相关联。在上面的代码中,包含一个属性Value,它与Range对象相关。同方法一样,使用属性时,也应在对象与属性之间加.,如range.rowheight

好吧在中文教程里纠结了半天,还是转战英文了,当然编程三日谈那个还是很棒的。

正经的microsoft教程:Getting Started with VBA in Excel 2010


Excel VBA TUTORIAL: Excel VBA Tutorial


Tip1
由于mac没有rowsource这个异常好用的东西,在创建combobox和listbox的时候需要用:
Private Sub UserForm_Initialize()
    Dim aCell As Range
    For Each aCell In Range("性别")
        ComboBox1.AddItem (aCell.Value)
    Next
End Sub

或者:
Private Sub UserForm_Initialize()
    ComboBox1.List = Worksheets("工作表1").Range("A1:A5").Value
End Sub

或者:
Private Sub UserForm_Initialize()
    UserForm2.Typetxt.Clear
    UserForm2.materialTypetxt.AddItem "Glass/Cell/polymer"
End Sub


Tip2
不小心把vba的工具栏删掉了怎么破:打开VBA,上侧 查看-> 工具栏 -> 标准

Tip3
Excel vba是可以debug的,在调试(debug)栏,遗憾的是mac的快捷键设置很诡异。。当然这个功能帮了大忙╮(╯▽╰)╭


Tip4
Userform里的字体大小通过双击属性栏里的font可以调整

完整的userform编程步骤&解说:Userform


Tip5
Dim Thesheet As Worksheet
Set Thesheet = Sheets("sheet1")
比:Sheets("sheet1")要快

Tip6

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多