首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Excel VBA保存为名称“月份”转换为数字(两位数)

Excel VBA保存为名称“月份”转换为数字(两位数)
EN

Stack Overflow用户
提问于 2018-08-03 14:53:04
回答 2查看 2.9K关注 0票数 0

我是新来的,也是VBA的。我试图将活动工作表导出到新的工作簿(仅值),并将其保存为特定的名称,其中部分名称必须在月份转换为两位数字格式。更具体地说,在"D4“中有一个月名。这个月我需要在新的工作簿的名字中使用,但是转换成两位格式。

代码语言:javascript
复制
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格式,然后将工作表导出到新的工作簿:

代码语言:javascript
复制
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

请帮帮我!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-03 15:12:29

使用@asantaballa的奇怪但很棒的Excel公式的VBA等值。

NewBook.SaveAs行的文件名更改为

代码语言:javascript
复制
 Filename:=ThisWorkbook.Path & "\" & Format(DateValue(Range("D4") & " 1"), "mm") & "_" & Range("I2") & "_" & " FLA"

这需要使用DateValue中的月份,将其附加到" 1"以使其看起来像真正的日期,然后使用DateValue将其转换为日期值,然后我们可以使用Format从该值派生数字。

所以AUGUST在细胞D4中

通过添加“1”而成为AUGUST 1

它使用01/08/2001函数成为DateValue

,它被格式化为生成08.的mm

票数 1
EN

Stack Overflow用户

发布于 2018-08-03 15:03:25

看上去有点好笑,但是试试

代码语言:javascript
复制
=TEXT(MONTH(DATEVALUE(D4 & "1")),"00")

http://www.exceltip.com/tips/converting-month-name-to-a-number-in-excel-2010-2013.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51675254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档