|
发表于 2024-12-27 18:34:19
|
显示全部楼层
你可以使用下面的VBA代码实现这个功能。代码利用 `Worksheet_Change` 事件来监控单元格 J2 的变化,当其内容发生变化并匹配指定格式时,会更新相同行的 K 列单元格。
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim regex As Object
- Dim matches As Object
- Dim matchPattern As String
- ' 检查目标单元格是否为 J2
- If Not Intersect(Target, Me.Range("J2")) Is Nothing Then
- ' 正则表达式模式
- matchPattern = "(\d+)[x*](\d+(\.\d+)?)"
-
- ' 创建正则表达式对象
- Set regex = CreateObject("VBScript.RegExp")
- With regex
- .Pattern = matchPattern
- .Global = False
- End With
- ' 执行正则表达式匹配
- If regex.test(Target.Value) Then
- Set matches = regex.Execute(Target.Value)
- ' 如果有匹配项,生成指定格式的字符串
- If matches.Count > 0 Then
- Me.Cells(Target.Row, "K").Value = "Φ" & matches(0).SubMatches(0) & "*" & matches(0).SubMatches(1)
- End If
- End If
- End If
- End Sub
复制代码
将以上代码粘贴到相应工作表的代码窗口中。右键点击工作表标签,选择“查看代码”将代码粘贴进去即可。
使用此代码时,需要确保单元格中的数据格式为 `数字x数字` 或 `数字*数字`,并遵循指定的格式进行替换。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|