在循环中填充ComboBox值?

时间:2016-01-20 10:22:54

标签: excel excel-vba combobox vba

您好我正在尝试运行一些代码,从一个单元格范围内的单个单元格中为一个组合框分配一个值,然后在我的工作表上执行一些公式,最后打印输出表格的pdf。一切似乎都运行正常,除了最终的pdf没有显示我在组合框中运行的值(尽管已经应用了工作表计算)。可能是我的循环执行速度快于我的组合框可以显示的值。我不太确定。以下是我的代码:

Application.ScreenUpdating = False

Dim i As Long
Dim ws As Worksheet
Dim FileName As String

Set ws = Sheets("Multi")
Set wsEE = Sheets("Employee")

FileName = ws.Range("B2")

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row

    For i = 7 To LastRow

        wsEE.ComboBox4.Value = ws.Range("A" & i)

        wsEE.Activate
        Application.Calculate

        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=ws.Range("B2") & "TCC Analysis - " & ws.Range("A" & i) & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False

    Next i

ws.Activate

Application.ScreenUpdating = True

我还有一些在组合框更改上运行的代码。我不确定这是否也是我问题的一部分。这是代码:

Private Sub ComboBox4_Change()

Sheets("Employee").Range("AZ1") = ComboBox4.Value

Application.Calculate

Application.DisplayAlerts = False

Dim ws As Worksheet
Set ws = Worksheets("Employee")

If Me.ComboBox4 <> -1 Then
    ws.Range("C72").Value = ws.Range("C16").Value
    ws.Range("C73").Value = ws.Range("C19").Value
End If

Application.Calculate

Application.DisplayAlerts = True

End Sub

之前有没有人遇到过这个问题?有没有人有他们可以提供的解决方案?谢谢!

0 个答案:

没有答案