如何用vb实现在EXCEL中自动计算加减乘除?

作者&投稿:拱博 (若有异议请与网页底部的电邮联系)

要在Excel中使用VBA进行自动加减乘除运算,您可以使用以下代码示例:

Sub AutoMathOperations()

Dim ws As Worksheet

Dim lastRow As Long

' 设置要进行运算的工作表

Set ws = ActiveSheet

' 获取最后有数据的行号

lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

' 定义运算符和操作数的列号

Dim operatorCol As Integer

Dim operand1Col As Integer

Dim operand2Col As Integer

Dim resultCol As Integer

operatorCol = 1 ' 运算符所在列号,假设为第1列

operand1Col = 2 ' 第一个操作数所在列号,假设为第2列

operand2Col = 3 ' 第二个操作数所在列号,假设为第3列

resultCol = 4 ' 运算结果所在列号,假设为第4列

' 从第2行开始循环至最后一行

For i = 2 To lastRow

' 获取运算符、操作数和结果的值

Dim operatorVal As String

Dim operand1Val As Double

Dim operand2Val As Double

Dim resultVal As Double

operatorVal = ws.Cells(i, operatorCol).Value

operand1Val = ws.Cells(i, operand1Col).Value

operand2Val = ws.Cells(i, operand2Col).Value

' 执行相应的运算并将结果存储在结果列中

Select Case operatorVal

Case "+"

resultVal = operand1Val + operand2Val

Case "-"

resultVal = operand1Val - operand2Val

Case "*"

resultVal = operand1Val * operand2Val

Case "/"

resultVal = operand1Val / operand2Val

End Select

' 将结果写入结果列

ws.Cells(i, resultCol).Value = resultVal

Next i

End Sub

要使用这段代码,您需要按照以下步骤进行操作:

  • 打开Excel,并按下Alt+F11键,打开VBA编辑器。

  • 在左侧的项目资源管理器中,双击要运行代码的工作簿,以展开其目录。

  • 右键单击"Microsoft Excel Objects"文件夹,选择"插入"->"模块",在项目资源管理器中会出现一个新的模块。

  • 在右侧的代码窗口中,将上述代码复制粘贴到新模块中。

  • 修改代码中的运算符和列号,以适应您的实际情况。例如,如果运算符所在列为C列,第一个操作数所在列为D列,第二个操作数所在列为E列,则将operatorCol = 3, operand1Col = 4, operand2Col = 5。

  • 保存并关闭VBA编辑器。

  • 在Excel中,选择要进行运算的工作表。

  • 按下Alt+F8键,打开宏对话框。

  • 选择"AutoMathOperations"宏,并点击"运行"按钮。

  • VBA代码将批量执行相应的加减乘除运算,并将结果存储在结果列中。

  • 请注意,此VBA代码假设运算符为文本形式(例如“+”,“-”,“*”,“/”),操作数为数值形式。如果运算符或操作数列包含其他类型的数据,请相应地修改代码以适应您的数据。



~

EXCEL如何用VBA设定SHEET1输入文字,在SHEET2数据库里自动查找并标颜色...
答:s = Target.Value With Sheet2 For i = 1 To .Range("B65536").End(xlUp).Row'从表2第1行循环到B列最后一个非空行号 If .Cells(i, 2) = s Then .Rows(i).Interior.ColorIndex = 3‘找到行红底 Else .Rows(i).Interior.ColorIndex = 0'不符合的无底色 End If Next End With E...

用VBA代码实现在EXCEL自动备份
答:你的事件用得不正确,你不是要在关闭工作簿时才选择是否备份吗,下面是按你的要求写的代码,供你参考:(在代码是尽量不用On Error Resume Next,否则代码有问题都查不出来)Private Sub Workbook_BeforeClose(Cancel As Boolean)Dim Pa$, Str1$Pa = "E:\我的备份\"If Dir(Pa, vbDirectory) =...

EXCEL怎么用VBA自动设置超链接
答:主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言---Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了V...

如何用VBA在EXCEL中实现自动输入*号变×号
答:在A1输入资料 2*3, 然后用VBA将A1的资料(在原格)改变成 2×3 是会做成循环错误, 要有相当高的VBA技巧及经验, 才可以有机会克服, 有很多情况可能会无法解决。观乎楼主的提问及补充, 应无能力在现阶段应用。除非你有相当高经验及造诣, 否则不要问在A1输入xx, A1格的内容要自动变成yy 此类问题(...

怎么把Excel中VBA窗口在Excel打开时自动显示?
答:在宏里面找到thisworkbook 在里面的open 里面写上 "你这个窗体的名字".show 注意我这里是代指你的窗体哈 一般如果你没有改过默认的名字那么就是userform1.show 如果改了名字就是你改的的名字.show 来张图吧

excel中用VBa自动设置单元格与工作表的超链接
答:主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言---Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了V...

用vba 在excel中自动填写3d全部号码
答:在VBE中插入模块,以下代码复制到该模块中,运行即可。Sub fill()n = 1 For i = 0 To 9 For j = 0 To 9 For k = 0 To 9 Cells(n, 1) = i Cells(n, 2) = j Cells(n, 3) = k n = n + 1 Next Next Next End Sub ...

EXCEL中VB编程关于自动填充代码的问题(高手进)
答:Set rng1 = Worksheets("Sheet1").Range("A1:A2")Set rng2 = Worksheets("Sheet1").Range("A1:A20")rng1.AutoFill Destination:=rng2 自带的帮助就有相关的信息:先设置两个RANGE变量,用rng1作为数据源,自动填充rng2区域 两个区域可以用别的语句先计算好,然后再填充 等着追加50分 ...

在Excel中使用VBA实现:如果A1有值,自动在B1填充公式,如果没值则不填充...
答:Public Sub 自动填充公式()'本例功能:如果A列有值则在同行B列填写计算其平方的公式;反之则不填充公式。For i = 1 To 10 If Cells(i, 1) <> "" Then Cells(i, 2) = "=A" & i & "^2"Next i End Sub

excel表格中想用vb实现自动提取d:\目录下123.xls文件a1单元格内容到当前...
答:Dim xlsApp As Object Dim xlsWorkbook As Object Dim xlssheet As Object Set xlsApp = CreateObject("Excel.Application") Set xlsWorkbook = xlsApp.Workbooks.Open(FilePath) xlsApp.Visible = False Set xlssheet = xlsWorkbook.Worksheets("Sheet2") '设置活动工作表 Dim...