Excel VBA 提取“C+数字”后字符并粘贴到L列
Excel VBA 提取“C+数字”后字符并粘贴到 L 列
本教程将教你如何使用 Excel VBA 编写代码,自动识别 H 列单元格中包含“C+数字”格式的字符串,提取“C+数字”后的字符并将其粘贴到相邻的 L 列单元格中。
以下是实现该逻辑的 VBA 代码:
Sub CutAndPaste()
Dim lastRow As Long
Dim i As Long
Dim cellText As String
Dim cNum As String
Dim cIndex As Integer
Dim cutText As String
'获取最后一行的行号
lastRow = ActiveSheet.Cells(Rows.Count, 'H').End(xlUp).Row
'循环检查 H 列每个单元格的内容
For i = 1 To lastRow
cellText = ActiveSheet.Cells(i, 'H').Value
'查找符合'C+数字'格式的字符串
cIndex = InStr(1, cellText, 'C')
If cIndex > 0 And IsNumeric(Mid(cellText, cIndex + 1, 1)) Then
cNum = Mid(cellText, cIndex, 2) '获取'C+数字'
cutText = Mid(cellText, cIndex + 2) '获取剪切的文本
ActiveSheet.Cells(i, 'H').Value = cNum '保留'C+数字'
ActiveSheet.Cells(i, 'L').Value = cutText '黏贴到 L 列
End If
Next i
End Sub
代码说明:
lastRow = ActiveSheet.Cells(Rows.Count, 'H').End(xlUp).Row: 获取 H 列最后一个非空单元格的行号,用于确定循环范围。For i = 1 To lastRow: 循环遍历 H 列的每个单元格。cellText = ActiveSheet.Cells(i, 'H').Value: 获取当前单元格的值。cIndex = InStr(1, cellText, 'C'): 查找字符串中第一个出现的 “C” 的位置。If cIndex > 0 And IsNumeric(Mid(cellText, cIndex + 1, 1)) Then: 判断 “C” 的位置是否大于 0 且 “C” 后面的第一个字符是否为数字。cNum = Mid(cellText, cIndex, 2): 获取 “C+数字” 部分的字符串。cutText = Mid(cellText, cIndex + 2): 获取 “C+数字” 后面的字符串。ActiveSheet.Cells(i, 'H').Value = cNum: 将 “C+数字” 保留到 H 列单元格。ActiveSheet.Cells(i, 'L').Value = cutText: 将剪切的文本粘贴到 L 列单元格。
使用步骤:
- 打开您的 Excel 工作簿。
- 按 Alt + F11 打开 VBA 编辑器。
- 在 VBA 编辑器中,点击 插入 > 模块。
- 将上述代码粘贴到模块中。
- 点击 运行 > 运行子程序/宏 或按 F5 运行代码。
注意:
- 确保 H 列和 L 列为空,以便将提取的文本粘贴到 L 列。
- 此代码只提取第一个 “C+数字” 后面的文本。
- 如果 H 列中有多个 “C+数字” 格式的字符串,需要修改代码以满足您的需求。
希望这篇文章对您有所帮助!如果您有任何问题,请随时提问。
原文地址: http://www.cveoy.top/t/topic/mLfA 著作权归作者所有。请勿转载和采集!