我在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.
答案 0 :(得分:5)
尝试使用Value
属性而不是Text
即
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
答案 1 :(得分:0)
每个单元格都有Value,Value2,Text和Formula值。 Value和Value2可以达到32K,但Text的长度限制为8221.公式长度可以更长,但是当它超过8192个字符时,它只能以XLSB格式保存。我不想看到那个公式!
答案 2 :(得分:0)
单元格中以32k字符显示的限制(并非所有字符都可见,但它们位于单元格中)。
就VBA而言,字符串可以是2GB长(32位有符号长字符数)。所以这个问题当然不是VBA的限制。
因此,D.Brett对.Value的回答显示了单元格中的实际内容,而不仅仅是文本。