我正在尝试在Access 2003中编写一个子例程,该子例程从数组中的字符串中删除所有引号字符。子例程在例程本身中成功删除了引号,但在程序返回到传递函数时则不会。我很困惑,因为它是ByRef。
如何调用:
Call removeQuotes(wbs_numbers())
和子程序本身:
'goes through a string array and removes quotes from each element in the array'
Sub removeQuotes(ByRef string_array() As String)
For Each element In string_array()
'chr(34) is quotation character. visual basic does not have escape characters.'
element = Replace$(element, Chr(34), "")
Next
End Sub
有人可以解释一下我做错了什么吗?我永远爱你!
答案 0 :(得分:11)
您的数组可能是参考,但element
不是。按索引迭代,并在操作后将字符串设置回数组。
答案 1 :(得分:3)
您正在创建新变量“element”,并且不会将其存储回string_array中,因此它不会更改。
答案 2 :(得分:2)
我的VB有点生疏,但谷歌的快速搜索出现了类似的内容:
Dim i As Integer
For i = LBound(string_array) To UBound(string_array)
string_array(i) = Replace$(string_array(i), Chr(34), "")
Next