仅保留工作簿中所有单元格的字母数字值

Posted

技术标签:

【中文标题】仅保留工作簿中所有单元格的字母数字值【英文标题】:Retain only alphanumeric values from all cells in a workbook 【发布时间】:2016-01-21 11:11:42 【问题描述】:

我有一个包含多张工作表的 Excel 工作簿,我只想保留 A-Z、0-9 和“.”。在工作簿的每个工作表的所有单元格中。

我想过使用以下方法:

Function AlphaNumericOnly(strSource As String) As String
    Dim i As Integer
    Dim strResult As String

    For i = 1 To Len(strSource)
        Select Case Asc(Mid(strSource, i, 1))
            Case 48 To 57, 65 To 90, 97 To 122: 'include 32 if you want to include space
                strResult = strResult & Mid(strSource, i, 1)
        End Select
    Next
    AlphaNumericOnly = strResult
End Function

但是运行这个函数只会产生#NAME?在excel中

我还希望 excel 自动导航到新工作表,并对固定范围的数据执行相同操作。

谁能帮帮我。

提前致谢

P.S:使用 Mac office 2016,工作簿有 30 张

【问题讨论】:

【参考方案1】:

#NAME 错误来自 Excel 无法识别自定义函数。如果您确定它没有拼写错误,那么下一个最有可能的问题是它放错了位置。

用户定义函数(又名 UDF)被放入标准模块代码表中。点击Alt+F11,当VBE打开时,立即使用下拉菜单插入►模块Alt+I,M)。将功能代码粘贴到标题为 Book1 - Module1 (Code) 的新模块代码表中。点击 Alt+Q 返回您的工作表。

        

【讨论】:

以上是关于仅保留工作簿中所有单元格的字母数字值的主要内容,如果未能解决你的问题,请参考以下文章

Excel UDF 在已关闭的工作簿中引用表以进行查找

将单元格从打开的工作簿复制到另一个

从找到的文本向右返回单元格的值

如果主工作簿与主工作簿匹配,则从工作簿中查找和循环并复制值

另一个工作簿中的更改会影响主工作簿中的 UDF

Excel VBA - 创建一个宏,将活动工作表名称插入另一个工作表单元格的论坛中