使用数字搜索字符串文本列,然后使用= mid提取2个数字

时间:2017-04-24 19:10:01

标签: excel-vba vba excel

我非常擅长录制宏,并且能够将录制的宏编辑为更通用的状态,以便宏可以在不同的电子表格上运行。 我很抱歉,如果之前已经回答了这个问题,我确实进行了搜索,但是从我的标题中可以看出,我在解释我要做的事情时遇到了一些困难。

updated screenshot

正如你所看到的,我在A列中混合了数据,而我想在“ - ”左边只有两个数字。我已经使用= MID(A9,17,2)来获得期望的结果,即02,但是,不能保证数据总是在A96中,因为这些是各个事项的导出摘要报告。我还要提一下,字符串数据总是相同的长度,但不是相同的“名称”SE2013000123.00002-1。

运行mid公式后,我需要将公式应用于所有包含字符串的单元格。

我已经记录了一个宏,但我不知道我需要拿出什么以及如何根据可变数据搜索进行搜索(这是正确的术语吗?)。

Option Explicit
Sub Test2()
'
' Test2 Macro
'

'
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B96").Select
ActiveCell.FormulaR1C1 = "=MID(RC[-1],17,2)"
Range("B97").Select
End Sub
Sub Value()
'
' Value Macro
'

'
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub

1 个答案:

答案 0 :(得分:0)

作为文字 - 看起来像一个数字,

with worksheets("Sheet1")
    .Range(.cells(96, "B"), .cells(.rows.count, "A").end(xlup).offset(0, 1).Formula = "=MID(A96, FIND(CHAR(45), A96)-2, 2)"
end with

作为一个真实的数字,

with worksheets("Sheet1")
    .Range(.cells(96, "B"), .cells(.rows.count, "A").end(xlup).offset(0, 1).Formula = "=--MID(A96, FIND(CHAR(45), A96)-2, 2)"
end with