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

代码说明:

  1. lastRow = ActiveSheet.Cells(Rows.Count, 'H').End(xlUp).Row: 获取 H 列最后一个非空单元格的行号,用于确定循环范围。
  2. For i = 1 To lastRow: 循环遍历 H 列的每个单元格。
  3. cellText = ActiveSheet.Cells(i, 'H').Value: 获取当前单元格的值。
  4. cIndex = InStr(1, cellText, 'C'): 查找字符串中第一个出现的 “C” 的位置。
  5. If cIndex > 0 And IsNumeric(Mid(cellText, cIndex + 1, 1)) Then: 判断 “C” 的位置是否大于 0 且 “C” 后面的第一个字符是否为数字。
  6. cNum = Mid(cellText, cIndex, 2): 获取 “C+数字” 部分的字符串。
  7. cutText = Mid(cellText, cIndex + 2): 获取 “C+数字” 后面的字符串。
  8. ActiveSheet.Cells(i, 'H').Value = cNum: 将 “C+数字” 保留到 H 列单元格。
  9. ActiveSheet.Cells(i, 'L').Value = cutText: 将剪切的文本粘贴到 L 列单元格。

使用步骤:

  1. 打开您的 Excel 工作簿。
  2. Alt + F11 打开 VBA 编辑器。
  3. 在 VBA 编辑器中,点击 插入 > 模块
  4. 将上述代码粘贴到模块中。
  5. 点击 运行 > 运行子程序/宏 或按 F5 运行代码。

注意:

  • 确保 H 列和 L 列为空,以便将提取的文本粘贴到 L 列。
  • 此代码只提取第一个 “C+数字” 后面的文本。
  • 如果 H 列中有多个 “C+数字” 格式的字符串,需要修改代码以满足您的需求。

希望这篇文章对您有所帮助!如果您有任何问题,请随时提问。

Excel VBA 提取“C+数字”后字符并粘贴到L列

原文地址: http://www.cveoy.top/t/topic/mLfA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录