Excel 是否可以在图纸中循环并创建字符串?

Excel 是否可以在图纸中循环并创建字符串?,excel,vba,Excel,Vba,所以我创建了一个宏,它将从下拉列表中的选项中准备临时文件中的所有数据,然后以PDF格式打印 我在最后一部分遇到了麻烦,我想创建一个循环,循环所有工作表,并在每个工作表名称的示例中给出一个字符串,其中4个首字母为Temp 这是我的代码: Set DV_Cell = Range("C5") ExcelPath = ThisWorkbook.Path 'Set range as the List for the dropdown list Set rgDV = ThisWorkbo

所以我创建了一个宏,它将从下拉列表中的选项中准备临时文件中的所有数据,然后以PDF格式打印

我在最后一部分遇到了麻烦,我想创建一个循环,循环所有工作表,并在每个工作表名称的示例中给出一个字符串,其中4个首字母为Temp

这是我的代码:

Set DV_Cell = Range("C5")

    ExcelPath = ThisWorkbook.Path

'Set range as the List for the dropdown list
    Set rgDV = ThisWorkbook.Worksheets("Sheet1").Range("S16:S23")

'Loop that changes the value of the C5 then copys the data
    For Each cell In rgDV.Cells
        DV_Cell.Value = cell.Value

        Sheets.Add.Name = "Temp" & DV_Cell.Value
        SheetName = ActiveSheet.Name
        ThisWorkbook.Worksheets("Sheet2").Cells.Copy
        ThisWorkbook.Worksheets(SheetName).Paste
    Next

        ThisWorkbook.Worksheets("Temp").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=ExcelPath & DV_Cell.Value, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
这是我必须删除临时文件的代码,可能与获取该字符串所需的内容类似:

For Each Sheet In ThisWorkbook.Worksheets

    StrS = Sheet.Name
     If Left(StrS, 4) = "Temp" Then
          Sheet.Delete
     End If

Next Sheet

创建所有临时工作表后,将按字母顺序排列。然后,它将遍历工作簿中的所有工作表,并选择前四个字母为“Temp”的工作表。一旦这些都被选中,它将一次打印成PDF文件

'Order worksheets alphabetically so they print in order
Dim x As Integer, y As Integer
For x = 1 To Worksheets.Count
    For y = x To Worksheets.Count
        If UCase(Sheets(y).Name) < UCase(Sheets(x).Name) Then
            Sheets(y).Move before:=Sheets(x)
        End If
    Next
Next

Dim ws As Worksheet

Dim replaceSelection As Boolean
replaceSelection = True

For Each ws In ThisWorkbook.Sheets
    If Left(ws.Name, 4) = "Temp" Then
        'This allows for selecting multiple sheets
        ws.Select Replace:=replaceSelection
        replaceSelection = False
    End If
Next ws

'Once all the Temp sheets have been selected you can print all at once to a PDF.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=excelpath & "\TempSheets.pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
“按字母顺序排列工作表,以便按顺序打印
将x作为整数,y作为整数
对于x=1的工作表。计数
对于y=x到工作表。计数
如果UCase(表(y).Name)

希望这就是你要找的。祝你的项目好运

但这只会创建一个字符串,并由下一个临时工作表写入。我需要一个可以收集所有工作表名称的工作表。我想将所有称为临时工作表的工作表打印成PDF。。。。我要dinamic的数量。。。有时Temp1,Temp2,其他时间Temp1,直到Temp34,每个例子我都编辑了我的答案。如果这是不正确的,让我知道。这是完美的工作,但创建一个PDF每页tht被称为临时,我的目标是创建一个PDF与所有的表称为临时