Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EXCEL:单元格。返回前面的“值”&引用;_Excel_Cell - Fatal编程技术网

EXCEL:单元格。返回前面的“值”&引用;

EXCEL:单元格。返回前面的“值”&引用;,excel,cell,Excel,Cell,我在部分代码中返回一个单元格值,然后清除数据以删除非法的文件名字符。当然,其中一个字符是“?”,出于某种原因,我的一些单元格返回的内容带有前置字符?尽管这不是细胞的一部分 此外,我用来清理字符串的代码并没有取代这个前导?像我希望的那样用空格 Function Clean(ByVal sFolderName As String) As String Dim i As Long Dim sTemp As String For i = 1 To Len(sFolderName) Sel

我在部分代码中返回一个单元格值,然后清除数据以删除非法的文件名字符。当然,其中一个字符是“?”,出于某种原因,我的一些单元格返回的内容带有前置字符?尽管这不是细胞的一部分

此外,我用来清理字符串的代码并没有取代这个前导?像我希望的那样用空格

Function Clean(ByVal sFolderName As String) As String

Dim i As Long
Dim sTemp As String

For i = 1 To Len(sFolderName)
      Select Case Mid$(sFolderName, i, 1)
         Case "/", "", ":", "*", "?", "<", ">", "|"
             sTemp = sTemp & ""
         Case Else
             sTemp = sTemp & Mid$(sFolderName, i, 1)
     End Select
 Next i

Clean = sTemp

End Function
函数Clean(ByVal sFolderName作为字符串)作为字符串
我想我会坚持多久
作为字符串的Dim sTemp
对于i=1到Len(sfolder name)
选择Case Mid$(sFolderName,i,1)
大小写“/”、“”、“:”、“*”、“?”、“”、“|”
sTemp=sTemp&“
其他情况
sTemp=sTemp&Mid$(sFolderName,i,1)
结束选择
接下来我
清洁=sTemp
端函数
例如,单元格中的值将显示为8324297444,但在尝试检索cell.value属性时,返回?8324297444。那么,当调用clean-up函数时,它将保持这个前导?性格

我拼命想弄清楚这里发生了什么事


有人有什么想法吗?

顺便说一句,问号(?)和星号(*)是Excel的特殊字符。尝试使用平铺字符来转义特殊字符,如下所示:

       Case "/", "", ":", "~*", "~?", "<", ">", "|"
大小写“/”、“”、“:”、“~*”、“~?”、“”、“|”
编辑:然后尝试使用以下字符代码:

       Case "/", "", ":", CHR(42), CHR(63), "<", ">", "|"
大小写“/”,“,”:”,CHR(42),CHR(63),“,”

经过几天的故障排除,这似乎是一个无法纠正的孤立事件。我已经用尽了所有可能的建议提供了关于某某和其他来源在网上

我能够通过识别受此行为影响的数据并手动重新键入来纠正这种情况

这不是最有效的解决方案,但它确实解决了问题


如果您遇到此问题,请注意,这是我能找到的唯一修复方法。

是否有使用自定义函数的原因?您可以使用使用regex的Excel RE.Replace函数。从未听说过,当我尝试在Excel中使用它时,它不适合作为函数。我需要包括一些图书馆吗?谷歌吧!当Excel没有字符符号时,将使用“?”。如果问题单元格为A1,请在另一个单元格中尝试
=code(A1)
。这将显示A1的第一个字符的代码编号,即使它不可见。或者,
=code(MID(A1,2,1)
将允许您检查单元格的第二个字符。ASCII代码也不起作用。据我所知,在调用Clean()函数之前,Excel将在数据后面加上这个前导“?”。