如何在VBA中找到一个字符后面的数字?

时间:2015-03-21 07:41:48

标签: vba excel-vba excel

如何在字符后的同一单元格中找到数字编号。对于ex之后J *找到数字01.我将有几行和内部行一些值将J * 01或J * 08即时尝试使用VBA中的instar在字符和数字之间分开:

Sub zz()

  Dim ii As Long, z As Integer, xlastrow As Long
  Dim yy As String
   xlastrow = Worksheets("Sheet1").UsedRange.Rows.Count
      For ii = 1 To xlastrow
        yy = "J*"
         z = 1
       If IsNumeric(Worksheets("Sheet1").Range("B" & ii)) Then

  This line separating number after J* character and pasting it to sheet2
Seprate.Find.Range("B" & ii, yy).Value = Worksheet("Sheet2").Range("A" & z)
          End If
          z = z + 1
      Next ii

End Sub

2 个答案:

答案 0 :(得分:0)

请尝试此代码

'粘贴A列中的值。

  q1w2e3r4asJ*66bvft654
  1234BA
  BA1234BA
  xuz12354

'''''代码

Option Explicit
Sub Remove_Charecter()

Dim Last_Row As Double
Dim num As Double
Dim i  As Integer
Dim j  As Integer

Last_Row = Range("A65536").End(xlUp).Row

For i = 1 To Last_Row

    num = 0
    For j = 1 To Len(Cells(i, 1))

        If IsNumeric(Mid(Cells(i, 1), j, 1)) Then
            num = Trim(num & Mid(Cells(i, 1), j, 1))
        End If
    Next j
    Cells(i, 2).Value = (num)
Next i
    'MsgBox num

End Sub

'---输出

123466654
1234
1234
12354

答案 1 :(得分:0)

尝试以下代码。

<强>假设

  1. 您需要分开的数据位于A列
  2. 数据中没有空白单元格
  3. 修剪值将显示在相邻列中,即后续单元格中的列B
  4. 代码:

    Dim LRow As Double
    Dim i  As Integer
    Dim j  As Integer
    Dim LPosition As Integer
    Dim Number As Double
    
    LRow = Range("A1").End(xlDown).Row
    
    For i = 1 To LRow
        Number = 0
        LPosition = InStr(1, Cells(i, 1), "J*")
        For j = (LPosition + 2) To Len(Cells(i, 1))
    
            If IsNumeric(Mid(Cells(i, 1), j, 1)) Then
                num = Trim(num & Mid(Cells(i, 1), j, 1))
            End If
            Next j
    Cells(i, 2).Value = Number
    
    Next i