我正在尝试从字符串中选择一个子字符串。
示例:我想从“T”开始从下面的字符串中选择表格no。
表T682(SAP TABLE)中的更改
表格no的开头位置相同,即第17位,但表名中的字符不是常量。所以我基本上想要一个从第17个位置选择的子串,直到找到一个空格。我使用下面的代码,但它似乎不起作用。
JOIN
答案 0 :(得分:1)
以下是您需要做的事情:
Dim A As String
Dim StartPosition As Integer
Dim EndPosition As Integer
A = "Changes in table T682 (SAP TABLE)"
StartPosition = InStr(1, A, "T")
EndPosition = InStr(StartPosition, A, " ")
tableno = Mid(A, StartPosition, EndPosition - StartPosition)
答案 1 :(得分:1)
您的代码中有两个错误:
1. instr的第一个参数应该是18.你想找到起点后的第一个空格
2. mid的最后一个参数是字符数
所以你的代码应该是这样的:
Position = InStr(18, a, " ")
TableNo = Mid(a, 18, Position - 18)
答案 2 :(得分:0)
T682之前的空格是字符17,表格从字符18开始,所以我们只需要在那之后找到空格。
GetTable函数也可以用作工作表函数,例如在单元格B1中输入=GetTable(A1)
以返回T682。
Sub Test()
Debug.Print GetTable("Changes in table T682 (SAP TABLE)")
End Sub
Public Function GetTable(Target As Range) As String
GetTable = Mid(Target, 18, InStr(18, Target, " ") - 18)
End Function
答案 3 :(得分:0)
另一种方式
s = "Changes in table T682 (SAP TABLE)"
Debug.Print Trim(Split(Split(s, "(")(0), "T")(1))
我假设以下内容。字符串的格式是常量,即
T
(
(
T*
将位于(