Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何将进度条添加到现有模块中_Excel_Vba - Fatal编程技术网

Excel 如何将进度条添加到现有模块中

Excel 如何将进度条添加到现有模块中,excel,vba,Excel,Vba,我已经创建了一个宏,我正在尝试向它添加一个进度条。到目前为止,我所做的唯一一件事就是创建一个UserForm,其中我有4个标签:白线标签=Label1;绿线标签:Label2;在制品标签:Label3;正在进行中的标签:Label4。下面是一张图片: 我的代码具有以下功能:我从M:O范围中获取值,将它们插入B4、B7和B9中,对于B4、B7和B9的每个条目,我创建一个PDF文档。示例:B4、B7和B9的100个条目=100个Pdf文档。我想创建一个进度条,显示整个进度。你知道怎么做吗?我唯一能

我已经创建了一个宏,我正在尝试向它添加一个进度条。到目前为止,我所做的唯一一件事就是创建一个UserForm,其中我有4个标签:白线标签=Label1;绿线标签:Label2;在制品标签:Label3;正在进行中的标签:Label4。下面是一张图片:

我的代码具有以下功能:我从M:O范围中获取值,将它们插入B4、B7和B9中,对于B4、B7和B9的每个条目,我创建一个PDF文档。示例:B4、B7和B9的100个条目=100个Pdf文档。我想创建一个进度条,显示整个进度。你知道怎么做吗?我唯一能够创建的就是在状态栏中显示一条消息,并使光标静止

代码:


这回答了你的问题吗?通过将标签嵌套在另一个标签的框架内,可以在用户窗体中创建进度条。两个标签均为空白,但外部标签为白色背景,而内部标签为纯色背景。然后根据进度百分比调整内部标签的宽度(对于水平条)。每次循环这么多圈后重新调整。在其最大扩展时,宽度将反映100%的进度。您可以考虑将百分比显示为数字。
Sub SavePDF4()
    Const sPath = "C:\Users\TestMacro\"
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim r As Long
    Dim m As Long
    Application.ScreenUpdating = False
    Set ws1 = ThisWorkbook.Worksheets("Protocol")
    Set ws2 = ThisWorkbook.Worksheets("Input")
    m = ws2.Range("M:O").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Application.Cursor = xlWait
    Application.DisplayStatusBar = True
    Application.StatusBar = "Please Wait.."
    For r = 1 To m
        ws2.Range("J5").Value = Range("J5").Value + 1
        ws1.Range("B4").Value = ws2.Range("M" & r).Value
        ws1.Range("B7").Value = ws2.Range("N" & r).Value
        ws1.Range("B9").Value = ws2.Range("O" & r).Value
        ws1.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=sPath & "Report_" & ws2.Range("J5").Value & ".pdf"
    Next r
    Application.Cursor = xlDefault
    Application.StatusBar = False
    Application.ScreenUpdating = True
End Sub