2

我在 excel VBA 中使用一个函数,我正在从一长串单元格中提取数据。

我正在使用这个功能

Function name(cell As Range) As Double

Dim Textstrng As String
Textstrng = cell.text
name = InStr(1, Textstrng, "UpgradeApprovalCode=")
End Function

UpgradeApprovalCode=在字符串中大约 8000 个字符内时,其显示结果,如 7000。但当它远离前 10000 个字符时,它不显示#VALUE!,不结果。

那么是否有任何搜索字符限制或我如何克服这个限制。我用的是office 2007。

4

3 回答 3

5

尝试使用该Value属性而不是Text

IE

Textstrng = cell.Value

编辑:

Sub main()
Dim cell As Range
Dim sh As Worksheet
Set sh = ActiveSheet
Set cell = sh.Cells(1, 1)
Call GetName(cell)
End Sub

Function GetName(cell As Range) As Double

Dim Textstrng As String
Textstrng = cell.Value
GetName = InStr(1, Textstrng, "UpgradeApprovalCode=", vbTextCompare)
End Function
于 2012-06-17T06:28:14.183 回答
0

Each cell has a Value, Value2, Text, and Formula value. Value and Value2 can get up to 32K, but Text is limited to a length of 8221. Formula length can be longer, but when it gets over 8192 characters, it can only be saved in XLSB format. I'd hate to see that formula!

于 2012-12-12T19:40:22.547 回答
0

在单元格中显示的限制为 32k 个字符(并非所有字符都可见,但它们在单元格中)。

就 VBA 而言,字符串可以是 2GB 长(32 位有符号长元素数)。所以这个问题当然不是 VBA 限制。

因此,D.Brett 对 .Value 的回答显示了单元格中的实际内容,而不仅仅是文本。

于 2014-07-02T23:57:52.290 回答