excel - 如何在 Microsoft Excel VBA 中进行计算?
问题描述
我今年 15 岁,正在实习作为一名开发人员,我有一项艰巨的练习。
我有一个包含 3 列的表,A 是“数字”,B 是“百分比”,C 是“值”。“值”列是空白的,我需要用宏按钮计算值。我试过这个,但这是错误的,因为我没有在 VBA 中计算它:
Public Sub PushButton ()
Range("C2:C11").Formula = "=A2*B2/100"
Range("C2:C11").Value = Range("C1:C6).Value
End Sub
我该如何解决这个问题?
解决方案
您正在使用定义的范围,您可以使用这样的动态范围:
Option Explicit
Sub PushButton()
Dim i As Long, LastRow As Long
With ThisWorkbook.ActiveSheet
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row 'first you need to find the last row on the active sheet
For i = 2 To LastRow 'then iterate through all the rows starting from 2, if row 1 has headers
.Cells(i, 3) = .Cells(i, 1) * .Cells(i, 2) / 100
Next i
End With
End Sub
如果您需要帮助理解此代码,请告诉我。
编辑:解释
好吧,您必须做的第一件事是维度所有变量,并帮助您Option Explicit
在所有代码之上使用正确的。
我已经为循环设置了 1 个变量,另一个用于查找最后一行的文本。
要找到最后一行,您实际上正在做的事情将成为 excel,选择最后一行 (1048576) 和它将包含文本的列,在本例中为 1 或列“A”,然后按 ctrl+Up excel 和 vba 将带您到最后一个带有文本的单元格。
为此,您可以使用Cells(Row, column)
而不是手动插入行 1048576,您可以使用rows.count
它,它会是相同的。
一旦你得到最后一行,你只需用一个循环进行迭代,这意味着对于一个称为等于 2 ( )For i
的变量(到你计算的最后一行),VBA 将在每次循环重新启动时在And添加 1 个数字之间重复代码。i
For i = 2
To LastRow
For
Next
i
在这种情况下,只需在行中添加一个数字,Cells(i, 3)
以便您可以根据其i
值修改该单元格。
推荐阅读
- php - PHP - 我如何测试这个类?
- vue.js - 在 axios 中设置 API 客户端授权密钥的问题
- powerapps - 记录更改时 PowerApps 全局变量未更新
- node.js - 了解 Express Gateway 和微服务(或单体 API)之间的用户创建
- java - 抽屉布局问题
- python - Python:为大量位置生成距离矩阵
- c# - 如何从 html 字符串创建单词标题
- node.js - 错误:Reference.set 失败:第一个参数在属性中包含未定义
- python - 如何在pyspark中旋转具有动态列的表
- python-3.x - sqlite3.OperationalError:靠近“。”:语法错误