我的单元格包含以下数据:
ABCD123XYZ MPOP345MLU . . . .
我想要做的是,删除所有这些单元格中的第3个和第4个字符,从而给出
AB123XYZ MP345MLU
如何在VBA中执行此操作?
我不知道这种语言,如果有人可以指导我朝着正确的方向前进,那就太棒了:)。
我明白我必须:
答案 0 :(得分:3)
使用Replace()公式的另一种方法,其中A1是具有文本的单元格。您可以简单地复制公式。
=REPLACE(REPLACE(A1,3,1,""),3,1,"")
VBA代码
Sub Sample()
Dim LastRow As Long
With Sheets("Sheet1")
LastRow = .Range("A" & Rows.Count).End(xlUp).Row
.Range("B1").FormulaR1C1 = "=REPLACE(REPLACE(RC[-1],3,1,""""),3,1,"""")"
.Range("B1").AutoFill Destination:=Range("B1:B" & LastRow), Type:=xlFillDefault
End With
End Sub
答案 1 :(得分:1)
使用“mid”功能
Dim str1 As String
Dim str2 As String
str1 = Cells(1, 1) '"ABCD123XYZ"
str2 = Cells(2, 1) '"MPOP345MLU"
Cells(1, 2) = Mid(str1, 1, 2) & Mid(str1, 5) 'yield AB123XYZ
Cells(2, 2) = Mid(str2, 1, 2) & Mid(str2, 5) 'yield MP345MLU
答案 2 :(得分:1)
您不需要VBA。只需使用公式:
=LEFT(A1,2) & MID(A1,5,9999)
答案 3 :(得分:1)
@ DougGlancy已经得到了你的回答,
但如果你真的想使用VBA:
Sub substr_example()
ThisWorkbook.Sheets(1).Range("B1:B100").FormulaR1C1 = _
"=LEFT(RC[-1],2)&MID(RC[-1],5,LEN(RC[-1])-4)"
End Sub