繁体   English   中英

VBA Excel 扫描单元格范围并填充组合框选择

[英]VBA Excel Scanning Range of Cells and Filling With ComboBox Selection

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

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 中指定日期我将把它与另一个 TextBox 中选择的 Year 结合起来,然后他们可以从 ComboBox 中选择一个值,当他们选择应用时,它将填充相应的列具有选定值的工作表。

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

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

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 按下时设置的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM