【问题标题】:How to record combo box values using Macro in Excel如何在 Excel 中使用宏记录组合框值
【发布时间】:2018-06-28 06:10:22
【问题描述】:

在现有的 Excel 电子表格中,我正在创建一个宏来根据第一行中输入的内容自动填充行。根据一周中的几天,总共将有 7 行。到目前为止,我成功地完成了其余字段,但是一个单元格有一个带有值的组合框。

Sunday=1
Monday=2
Tuesday=3
Wednesday=4
Thursday=5
Friday=6
Saturday=7

每一行必须获得每个值之一。我在录制宏时一一记录这些值,但是当我单击按钮运行宏时,它不会创建这些值。有什么建议么? 顺便说一句,在没有组合框的情况下,我可以在其他单元格中创建这些值,然后通过宏在此列中复制,但是当我使用组合框时,我无法这样做。

这是宏生成的VBA:

Sub AList()
'
' AList Macro
'

'
    Selection.AutoFill Destination:=Range("A4:A10"), Type:=xlFillCopy
    Range("A4:A10").Select
    Range("B4").Select
    Selection.AutoFill Destination:=Range("B4:B10"), Type:=xlFillCopy
    Range("B4:B10").Select
    Range("C4").Select
    Selection.AutoFill Destination:=Range("C4:C10"), Type:=xlFillCopy
    Range("C4:C10").Select
    Range("E4").Select
    Selection.AutoFill Destination:=Range("E4:E10"), Type:=xlFillCopy
    Range("E4:E10").Select
    Range("D10").Select
End Sub

Col D 没有记录前面列出的组合框中的星期几。 请指导我是否需要以及如何修改此 vba 代码。

【问题讨论】:

  • 你能用一个公式来确定星期几吗?
  • 这表明你的代码有问题,不是吗?因此,如果您需要帮助,请将其添加到您的帖子中。仅根据您提供的当前信息,实际上不可能确切地说明您的宏为什么不起作用。

标签: vba excel


【解决方案1】:

编辑了我的答案并测试了下面的代码。似乎工作:

Sub AList()
    Dim c As Range
    Dim x As Integer
    Dim days(1 To 7) As Variant

    days(1) = "Sunday"
    days(2) = "Monday"
    days(3) = "Tuesday"
    days(4) = "Wednesday"
    days(5) = "Thursday"
    days(6) = "Friday"
    days(7) = "Saturday"

    Range("A4:A10").Value = Range("A4").Value
    Range("B4:B10").Value = Range("B4").Value
    Range("C4:C10").Value = Range("C4").Value

    x = 1
    For Each c In Range("D4:D10")
        c.Value = days(x)
        x = x + 1
    Next c

    Range("E4:E10").Value = Range("E4").Value
End Sub

【讨论】:

  • 代码运行良好,除了在 D 列中它只是添加了工作日并且 for 循环没有添加数字。但是我可以通过更改为 days(1) = "Sunday+1" 等来解决问题。谢谢
猜你喜欢
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
相关资源
最近更新 更多