我使用以下代码从列中拆分关键字。但是,它一直在向我提出主题错误。我怀疑这与我的Len或Mid有关。
Sub ConcatenateTLS()
Dim x As String
Dim ws As Worksheet
Dim colLen As Integer
On Error GoTo ER
Set ws = ThisWorkbook.Worksheets(1)
x = InputBox("Enter your Column Label")
LR = ws.Cells(Rows.Count, x).End(xlUp).Row
For i = 2 To LR
colLen = Len(ws.Cells(i, 1).Value) - 20
If colLen <> 0 Then
ws.Cells(i, 8).Value = Mid((ws.Cells(i, 1).Value), 15, colLen)
End If
Next
ER:
MsgBox Err.Description & " " & Err.Number
End Sub
答案 0 :(得分:2)
问题在于您将负数colLen传递给MID函数。尝试添加一些条件处理来防止这种情况。
答案 1 :(得分:0)
这可能是另一种选择:
Sub M_snb()
On Error Resume Next
ActiveSheet.UsedRange.Columns(InputBox("which column ?")).Name = "snb_002"
MsgBox Join(Filter([transpose(if(snb_002="","~",if(len(snb_002)>20,left(snb_002,len(snb_002)-20),snb_002)))], "~", False), vbLf)
End Sub