Excel 是否可以在图纸中循环并创建字符串?
所以我创建了一个宏,它将从下拉列表中的选项中准备临时文件中的所有数据,然后以PDF格式打印 我在最后一部分遇到了麻烦,我想创建一个循环,循环所有工作表,并在每个工作表名称的示例中给出一个字符串,其中4个首字母为Temp 这是我的代码: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
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与所有的表称为临时