我在这里也是VBA中的新手。我试图找出将活动表导出到新工作簿(只是值),并将其保存为特定名称,其中名称的一部分必须月份转换为两位数格式。 更具体地说,“ D4”中有一个月份名称。我需要在新工作簿的名称中使用本月,但转换为两位数格式。
With ActiveSheet
ActiveSheet.Range("A1:M40").Copy
Set NewBook = Workbooks.Add
With NewBook
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Dim LMonth As Integer
NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("D4") & "_" & Range("I2") & "_" & " FLA"
End With
End With
下面是完整的代码,该代码将工作表打印为pdf,然后将工作表导出到新工作簿:
Private Sub Print_PDF_Click()
With ActiveSheet
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & Range("I2") & " FLA" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
With ActiveSheet
ActiveSheet.Range("A1:M40").Copy
Set NewBook = Workbooks.Add
With NewBook
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Dim LMonth As Integer
NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Range("D4"),"mm") & "_" & Range("I2") & "_" & " FLA"
End With
End With
MsgBox "PDF successfully created!"
End With
End Sub
请帮助!
答案 0 :(得分:1)
看起来很有趣,但是尝试
=TEXT(MONTH(DATEVALUE(D4 & "1")),"00")
http://www.exceltip.com/tips/converting-month-name-to-a-number-in-excel-2010-2013.html
答案 1 :(得分:1)
使用等效于@asantaballa的外观奇妙但出色的Excel公式的VBA。
将NewBook.SaveAs
行的文件名更改为
Filename:=ThisWorkbook.Path & "\" & Format(DateValue(Range("D4") & " 1"), "mm") & "_" & Range("I2") & "_" & " FLA"
这花费了D4
中的月份,并在其上附加了" 1"
以使其看起来像真实的日期,然后使用DateValue
将其转换为Date值,然后我们可以使用Format
从中得出数字。
所以AUGUST
在单元格D4中
通过添加“ 1”成为AUGUST 1
通过01/08/2001
函数变成DateValue
,其格式设置为mm
以产生 08
。