Excel VBA 用代码写入公式formula = "=IF(A1=E1, "对", "")" 显示错误
时间: 2024-04-15 13:22:36 浏览: 37
Excel VBA 中写入公式的代码如下:
```vba
Sub WriteFormula()
Range("A1").Formula = "=IF(A1=E1, ""对"", """")"
End Sub
```
这段代码将在 A1 单元格中写入公式 `=IF(A1=E1, "对", "")`。如果 A1 和 E1 的值相等,则显示“对”,否则显示空字符串。
相关问题
改写vba代码“LookIn:=xlValues”,为vbscript代码
在VBScript中,查找Excel工作簿中的值时,可以使用Range对象的Value属性。为了指定查找值所在的单元格范围,可以使用Range对象的Address属性。因此,可以将VBA代码中的"LookIn:=xlValues"改写为以下VBScript代码:
```
myRange.Value
```
其中,myRange是一个Excel Range对象,表示要查找值的单元格范围。这个代码可以返回myRange范围内的所有值。如果要返回某个单元格的值,可以使用类似的代码:
```
myRange.Address(row, col).Value
```
其中,row和col是要查找值的单元格的行和列。这个代码可以返回myRange范围内指定单元格的值。
excel vbaB列输入公式=J2*10+K2,公式行数变化
在Excel VBA中,如果你想要将公式`=J2*10+K2`应用到B列的每一个单元格,并且这个公式行数会随着J和K列数据的变化而动态更新,你需要编写一个循环来遍历每一行。例如,你可以使用For Each循环来完成这项任务,假设你想从第二行开始复制这样的公式,因为J2和K2是从第二行开始存在的。
```vba
Sub CopyFormulaToBColumn()
Dim ws As Worksheet ' 假设你在一个工作表上操作
Set ws = ThisWorkbook.Sheets("Sheet1") ' 替换为实际的工作表名
Dim lastRow As Long ' 获取最后一行的实际行号
lastRow = ws.Cells(ws.Rows.Count, "J").End(xlUp).Row
For i = 2 To lastRow ' 开始于第二行(因为J2和K2通常在第二行)
ws.Range("B" & i).Formula = "=J" & i & "*10+K" & i ' 设置B列对应的单元格公式
Next i
End Sub
```
这段代码会在J列的最后一个非空单元格所在的行数范围内,逐行复制并设置B列的公式。如果J和K列的行数有所增加,只要运行该宏,公式就会相应地更新。