【问题标题】:If Then Statement in Excel VBA for set rangeExcel VBA中的If Then语句用于设置范围
【发布时间】:2013-08-15 06:34:19
【问题描述】:

我在Sheet 1 上有一个包含每个月的ActiveX ComboBox1。然后,我在同一张纸上有一行,每个单元格 Range C7:N7 包含一个月。我想编写一个代码,用来自Sheet 2 上的单元格D14 的数据填充下一行Range(C8:N8) 中的单元格,如果ComboBox1 = Range(C7:N7)

代码如下所示:

If ComboBox1 = Range(B7, N7) Then
   Range(B8, N8) = "Sheet2!$D$14"
End If

这可能吗?我需要定义什么吗?

【问题讨论】:

  • 不清楚您的要求是什么
  • 如果在 ComboBox 中选择的月份与第 7 行中的月份相匹配,我希望工作表 2 上的单元格填充工作表 1 上的相应单元格...这样是否更清楚?
  • 没有。我仍然不知道你想做什么。考虑更清楚地编辑您的问题,向我们展示您的尝试,告诉我们什么不起作用
  • 如果 ComboBox1 中的月份 = 第 7 行中的月份,单元格 B:N 然后填充第 8 行,与工作表 2 中的单元格 D14 相同的列
  • if the month in comboxbox1 是什么意思?像11这样的数字?或者像“十一月”这样的名字? = the month in row 7, cells B:N 是什么意思?您是在迭代以匹配每个单元格的值还是什么?以及您何时以及如何触发该组合框事件?你有它的功能吗?不是读心者,不可能回答像你这样的问题。

标签: excel vba if-statement range


【解决方案1】:

对于这样的事情,您可以利用组合框的 ListIndex 属性:

Private Sub ComboBox1_Change()

    'Clear prior entries
    Range("B8:N8").ClearContents

    'Make sure something has been selected in the listbox
    If ComboBox1.ListIndex = -1 Then Exit Sub

    'Populate the appropiate cell
    Range("B8").Offset(, ComboBox1.ListIndex).Value = Sheets("Sheet2").Range("D14").Value

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2014-01-07
    • 2020-02-12
    相关资源
    最近更新 更多