You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA If条件判断执行异常 TextBox取值不符合预期问题排查

故障原因

你的判断逻辑写死了优先校验A2单元格的值:只要A2内容是Pan Tadeusz,程序会直接进入第一个If分支执行,完全不会进入后面的ElseIf判断,这就是你始终取到C2值、永远走不到C3取值分支的核心原因。
另外代码里存在单元格引用错误:你给kordianilosc变量赋值时取的是B3单元格,和你预期读取C3的需求不符。

修复方法
  • 把判断的依据从固定读A2单元格值,改成你实际用来触发选择的条件:比如如果是通过输入/选择书名来匹配对应记录,就取你输入控件的值作为判断关键字,不要写死固定判断某个单元格的静态值。
  • 修正错误的单元格列引用,Kordian对应的数量列是C3而非B3。
  • 修复后的参考代码:
Private Sub CommandButton4_Click()
    ' 替换成你实际的判断取值来源,比如如果是用输入框填书名查询就取对应文本框值
    Dim matchKeyword As String
    matchKeyword = Trim(TextBox1.Value)

    If matchKeyword = "Pan Tadeusz" Then
        TextBox2.Value = Range("C2").Value
        TextBox7.Value = Range("D2").Value
        TextBox8.Value = Range("E2").Value
    ElseIf matchKeyword = "Kordian" Then
        TextBox2.Value = Range("C3").Value
        TextBox7.Value = Range("D3").Value
        TextBox8.Value = Range("E3").Value
    Else
        MsgBox "未查询到匹配的记录"
    End If
End Sub

如果后续要新增更多书目匹配,建议用字典对象存书名和对应行号的映射关系,不用重复写多段If分支,维护起来更简单。

内容的提问来源于stack exchange,提问作者Bartek Sacha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 03:18:25