如何在Excel中使用宏记录组合框值

时间:2018-06-27 20:31:18

标签: excel vba excel-vba

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

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

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

这是Macro生成的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(在Combobox中具有“星期几”,如先前所列)没有被记录。 请指导我是否以及如何需要修改此vba代码。

1 个答案:

答案 0 :(得分: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