【问题标题】:Looking up a value in Row of another Sheet在另一张工作表的行中查找值
【发布时间】:2019-10-30 15:50:18
【问题描述】:

我正在尝试使用VBA 创建一个开放式测试。我在第二张纸上放置了各种不同的答案排列,并使用了如下内容:

Sub Q1()
If (Sheet1.Cells(4, 2) = Sheet2.Cells(4, 3)) Or (Sheet1.Cells(4, 2) = Sheet2.Cells(4, 4)) Or (Sheet1.Cells(4, 2) = Sheet2.Cells(4, 5)) Then

Sheet1.Cells(4, 4) = 1

Else

Sheet1.Cells(4, 4) = 0

End If

End Sub

效果很好。我有一些答案,其中包含 120 种不同的正确排列,我将它们放入一行(每个排列在该行中占据自己的单元格)

我的目标是将Sheet1 单元格的输入与行进行比较。如果有匹配,输出将与上面相同,没有匹配也一样。如何将我的行变成一个数组,然后搜索 sheet1 单元格的值?

谢谢!

【问题讨论】:

  • 您可以遍历该行的值,或者您可以只查找该行中的值,或者您可以读取数组中的该行并遍历数组并找到您的值。

标签: arrays vba matching


【解决方案1】:

这样的事情会起作用:根据您的要求更改值。

Sub Q1()

Dim i As Integer

For i = 1 To 120 ' Loop running from 1st column to 120th Column of row 4. Change if values are n other row or columns

    If Sheet1.Cells(4, 2) = Sheet2.Cells(4, i) Then

        Sheet1.Cells(4, 4) = 1
        Exit For
    Else

        Sheet1.Cells(4, 4) = 0

    End If

Next

End Sub

【讨论】:

  • 米库你就是炸弹。我什至没有想过要这样循环。谢谢你:D
  • @DanielFlandersThedanflan .. 乐于助人:)
  • 我有一个随机的后续问题。如果我要考虑用户输入的变化(如空格和额外的标点符号(此测试的答案是 IP 地址)),我会更好地格式化所有输入或其他内容吗?再次感谢
  • @DanielFlandersThedanflan .. 我建议使用 Clean Trim,检查单元格的值是否包含除数字和点之外的任何内容。那将完成工作。这个link 可能会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 2021-07-16
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
相关资源
最近更新 更多