我在Excel工作表sql语句中有一个用于where
子句的值的列表。
但是最后一个值始终具有该结尾,
。
无论如何,我是否可以更改命名范围以排除最后一个逗号?
我尝试过的事情:
"'"&$A6&"'"
,用此,
替换最后一行'AP'
。
但是,当我在where子句中使用它时,我的命名范围按字母顺序显示。因此'AP'
不会是最后一个值。
我有一个如下所示的值列表:
+--------+
| 'TOR', |
| 'TOR', |
| 'TOR', |
| '1', |
| '1', |
| 'AP', |
+--------+
这是我使用的公式:
=OFFSET(Nodes2!$F$2,0,0,COUNTA(Nodes2!$F:$F),1)
我的where子句:
position in "&" ("&textjoinifs(CHAR(10),24,2,namedrange)&")"
答案 0 :(得分:2)
当您使用的范围已经是数组时,请使用Join
而不是手动串联。只需将您的实际值保存在单元格中,不要在单元格本身中添加,
或'
。
有关详细信息,请参见代码注释。
Sub test()
Dim arr
Dim strResult As String
'/ Get the range data into an array
arr = Sheet1.Range("TestNamedRange")
'/ Transpose the array , so you end up with one dimension
arr = Application.Transpose(arr)
'/ Join the array. Specify whatever delimeter you want e.g. ','
strResult = "'" & Join(arr, "','") & "'"
End Sub
答案 1 :(得分:0)
这个非常基本的代码将删除字符串末尾的所有逗号:
Function TrimTrailingCommas(ByVal Text As String) As String
While Right(Text, 1) = "," 'When the last character is a comma
Text = Left(Text, Len(Text) - 1) 'Remove it
Wend 'Repeat until the last character is not a comma
TrimTrailingCommas = Text 'Return the trimmed text
End Function
答案 2 :(得分:0)
=Left(Cell,Len(Cell)-1)
修剪最后一个字符。
对于VBA版本(我是徒手写的,可能会有语法错误):
Function RemoveLastComma (InputString as String)
RemoveLastComma = Application.Worksheetfunction.Left(InputString ,Len(InputString)-1)
End Function