gpt4 book ai didi

vba - 使用 Instr 和单元格格式时出现问题

转载 作者:行者123 更新时间:2023-12-02 19:11:45 27 4
gpt4 key购买 nike

我有一个谜题,我已经尝试解决了一段时间了。我有一个从 .csv 文件导入数据的电子表格,该文件与初始位置设置完全不同。

我当前运行搜索以查找包含值的最后一个单元格并将其用作起点。现在,由于超出我的原因,这有时会失败并将起点放在电子表格的中间位置。因此,为了解决这个问题,我决定编写一个检查代码或更复杂的位置查找器。

新的定位器如下

    For a = 1 To 400

Dim SearchString As Variant
Dim SearchSymbol As String

SearchString = Cells(NewLastRowNumber, 10)
SearchSymbol = "€"

If InStr(1, SearchString, SearchSymbol, 1) = 0 Then

NewLastRowNumber = NewLastRowNumber - 1

Else

NewLastRowNumber = NewLastRowNumber + 1
Exit For
End If

Next a

除了在单元格内搜索的内容之外,这还有效。背后的理想是它搜索包含成本的数据列,即(第 1 行 -> €100,第 2 行 -> €235 等)并找到包含 的最后一个单元格,目前我只能让它找到列标题而不是单元格。

该列中的每个单元格均采用自定义格式 (€0.00),不确定这是否有任何区别。

我嵌入了一些图像来进一步演示我的问题。

Copy of sample spreadsheet

Image of code describing cell value 此时NewLastRowNumber = 13

此时,循环应该中断并记录 NewLastRowNumber = 13,但它会继续下去,直到找到列标题。

希望这一切都有意义并谢谢。

最佳答案

该单元格的格式为“货币”或“自定义”,因此您无法在其中找到欧元符号。当您检查 InStr() 时,它会检查单元格 .Value,而不是 .Format

要在单元格中查找欧元,请检查如下格式:

If Cells(NewLastRowNumber, 10).NumberFormat = "€0.00" Then

要在 VBA 中查看确切的数字格式,请选择具有所需格式的单元格并运行以下命令:

Sub Test()
Debug.Print Selection.NumberFormat
End Sub

关于vba - 使用 Instr 和单元格格式时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com