使用VBA根据Excel表格内容生成文件

1 篇文章 0 订阅

VBA代表Visual Basic for Applications,这是一种来自Microsoft的事件驱动编程语言,现在主要与Microsoft Office应用程序一起使用。 在VBA中,Excel VBA是最流行的。使用VBA的好处是可以使用线性编程在Excel中建立非常强大的工具。

一、打开Excel中VBA环境

  1. 使用快捷键:Alt+F11
  2. 或:点击“文件”选项卡,点击“更多”,点击“选项”进入Excel选项,选择“自定义功能区”,侧主选项卡下找到并勾选“开发工具”,确定后可在Excel上方菜单栏中选择“开发工具”。

点击“开发工具”,可以看到有以下选项。点击Visual Basic进入编辑环境。

二、编写VBA代码

点击插入,选择模块,接下来就可以进行代码的编写了。

首先要创建一个宏并命名,以Sub开始,End Sub结束。在宏中可以调用另一个宏或者函数。

Sub Macro1()
    ' Macro1 Macro
    Worksheets(1).Range("A1").Value = "Hello World"
End Sub

该宏功能是在A1格中写入Hello World。

可能用到的语法:

Sub Macro1()
    ' Macro1 Macro
    Dim ws1 As Worksheet	'定义变量ws1为工作表
    Dim filePath As String  '定义变量filePath为字符串
    Dim MaxRowS1 As Integer	'定义变量MaxRowS1为整型
    Dim com_id_array(1 To 60) As String			'定义com_id_array为大小是60的字符串数组

    Set ws1 = ThisWorkbook.Worksheets(1) 		'将ws1设置为当前excel文件的sheet1
    ws1.Range("A1").Value = "Hello World" 		'在当前excel文件的sheet1的A1格中写入Hello World
    MaxRowS1 = ws1.UsedRange.Rows.Count			'获取sheet1最大行数
        
    filePath = ThisWorkbook.Path & "\com_1.txt"	'将当前excel文件路径下的.txt文件路径赋值给filePath
    fileNumber = FreeFile
    Open filePath For Output As fileNumber		'打开文件以供写入
    Print #fileNumber, "test"					'在文件中写入test并换行

    '遍历所有行,若A列单元格中为COM,并且B列单元格有内容,则将B列单元格内容存入数组com_id_array,并写入文件中
    For i = 1 To MaxRowS1
    	If (ws1.Cells(i, "A").Value = "COM") And (Len(ws1.Cells(i, "B").Value) > 0) Then
            com_id_array(i) = ws1.Cells(i, "B").Value
            Print #fileNumber, com_id_array(i)	'在文件中写入并换行
        End If
    Next i

    Close fileNumber		'关闭文件

    MsgBox("txt创建完成!")	'弹出消息框

End Sub

上述代码片段展示了常用的语法,更多语法规则及更详细的内容可以参阅以下网址:

VBA教程

Office VBA 入门 | Microsoft Learn

三、运行宏

代码无需保存即可运行,点击下方按钮运行代码。

或者在开发工具中点击宏,在弹出的提示框中选择想要运行的宏,点击执行。

 可以将宏保存在表格内,但带有宏的表格需保存为.xlsm文件。

以上仅仅是关于VBA使用的简单的入门教学,还有更强大的功能等你探索。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值