【发布时间】:2019-07-10 17:21:12
【问题描述】:
希望自动填充单元格 (C:C) 减去标题,因为我使用 VBA 在单元格 (A:A) 中输入数据减去标题。对于我想自动填充到单元格 C:C 中的公式是逻辑真/假,而是用扫描仪 1 和 2 替换它。
=IF(ISNUMBER(SEARCH("$",$A2)),"Scanner 2",IF(ISNUMBER(SEARCH("#",$A2)),"Scanner 1","Error"))
以下是我尝试的 VBA 代码,由于我是 VBA 新手,可能会出错:(可能使用函数而不是私有子?)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rINT As Range
Dim rCell As Range
Dim tCell As Range
Set rINT = Intersect(Target, Range("A:A"))
If Not rINT Is Nothing Then
For Each rCell In rINT
Set tCell = rCell.Offset(0, 2)
If IsEmpty(tCell) Then
With ThisWorkbook.Sheets("BOD_Barcode")
tCell = tCell.Formula = "=IF(ISNUMBER(SEARCH(""$"",$A2)),""Scanner 2"",IF(ISNUMBER(SEARCH(""#"",$A2)),""Scanner 1"",""Error""))"
End With
End If
Next
End If
End Sub
【问题讨论】:
-
这看起来很可疑:
tCell = tCell.Formula = ...,但否则不清楚您所说的“它不工作”是什么意思。你能详细说明吗?请更详细地修改问题。 -
另外,如果您想使用
Worksheet_Change,请不要将其重命名为Autofill_scan_name。 -
嗨,是的,我正在尝试做一个 worksheet_change ,我会修改并详细说明这个问题
-
您确定要在列中的每个单元格 中使用此公式吗?另外,我不相信你能做到
tCell = tCell.Formula = ...那只是tCell.Formula = ...另外,ThisWorkbook.Sheets("BOD_Barcode")是这个Worksheet_Change()事件所在的工作表吗?如果不是,您需要澄清,因为tCell将是活动表的任何内容... -
@BruceWayne 是的,我想把这个公式放在 C 列中的每个单元格中(减去标题),是的,我相信这是与工作表 _change() 相关联的工作表,但以防万一我怎么知道? VBA 新手