【问题标题】:VBA Excel Scanning Range of Cells and Filling With ComboBox SelectionVBA Excel扫描单元格范围并使用组合框选择填充
【发布时间】:2017-09-07 19:56:08
【问题描述】:

我有一个电子表格,主要由 12 张表组成,对应于 1 月至 12 月。我正在尝试根据日期的 TextBox 条目和 ComboBox 的值选择来填充特定日期的工作表。每张纸在单独的范围内有 6 周。我希望扫描特定日期的所有范围,并使用基于 ComboBox 选择的值从找到的值向下填充 14 个单元格。 NewYearsHoliday 是 MM/DD/YYYY 格式的字符串值,相当于被扫描的值单元格。正在扫描的单元格在 Excel 中采用日期格式。范围对应于显示日期的单元格。 ComboBox 填充了一个 DefinedName 选项列表,该列表基于另一个工作表上的 OffSet 值。

Sub Holiday()

'Select Sheet
    Sheets("Jan").Select
'Scan Cells for Dates Within Range
    For Each Cell In ActiveSheet.Range("B3:H3,B19:H19,B35:H35,B51:H51,B67:H67,B83:H83")
'Set Column Value Based On ComboBox Selection
    If Cell.Value = NewYearsHoliday Then
         Cell.Select
         ActiveCell.Offset(1, 0).Resize(14, 1).Select
         Selection.Value = ComboBoxNewYears.Value
    End If
Next

End Sub

我想让用户使用 MM/DD 格式在 TextBox 中指定日期工作表中的对应列与选定的值。

我知道元旦不会移动,但这是概念验证代码,将在一年中的所有假期重复。任何人都可以分享任何关于为什么我的代码没有按我预期填写的任何意见吗?

【问题讨论】:

  • Cell.Value 返回什么。我认为它类似于 40235,excel 存储日期的方式。如果是这样,您也必须将您的 NewYearsHoliday 转换为该值。使用 F9 单步执行您的代码并将鼠标悬停在 Cell.Value 上以查看其值。
  • 如果我创建一个显示它返回的单元格值的消息框。 MM/DD/YYYY 例如。单元格 B3 返回 2018 年 1 月 1 日。
  • 通过在 if 语句中放置一个消息框来尝试查看是否有匹配项。
  • 放入消息框帮了大忙。

标签: excel combobox vba


【解决方案1】:

谢谢大家的建议。我发现我的代码有两个问题。

A) 我的 TextBox 输入格式为 01/01,需要为 1/1 才能匹配单元格。

B) 单独的模块无法访问 ComboBox.Value,因此我必须将其设置为公共变量,以便它可以访问 String 值。

 Sub Holiday()

'Select Sheet
     Sheets("Jan").Select
'Scan Cells for Dates Within Range
     For Each Cell In ActiveSheet.Range("B3:H3,B19:H19,B35:H35,B51:H51,B67:H67,B83:H83")
'Set Column Value Based On ComboBox Select
        If Cell.Value = NewYearsHoliday Then
             Cell.Select
             ActiveCell.Offset(1, 0).Resize(14, 1).Select
             Selection.Value = NewYearsHolidaySelection
        End If
     Next

End Sub

供参考,NewYearsHoliday 和 NewYearsHolidaySelection 变量是基于 TextBox 和 ComboBox 的值在按下 CommandButton 时设置的字符串。

【讨论】:

    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多