如何在vba中将单元格名另存为工作簿

如何在vba中将单元格名另存为工作簿,vba,excel,Vba,Excel,我在订单计算模板中创建了宏,以删除一些不必要的行,并将工作表保存为带有“name”的工作簿。宏工作得很好,但哪里有一个恼人的问题,我每次都要改变它这个工作簿名称根据订单号。因此,我想创建/改进我的宏,以将工作表另存为具有单元格名称的工作簿(此单元格范围为“G1”) 有人知道怎么做吗 Sub Pirmoji() ' ' Pirmoji Macro Sheets("Svorio Patvirtinimo dok").Select ActiveSheet.Shapes.Range(Array("Co

我在订单计算模板中创建了宏,以删除一些不必要的行,并将工作表保存为带有“name”的工作簿。宏工作得很好,但哪里有一个恼人的问题,我每次都要改变它这个工作簿名称根据订单号。因此,我想创建/改进我的宏,以将工作表另存为具有单元格名称的工作簿(此单元格范围为“G1”)

有人知道怎么做吗

Sub Pirmoji()
'
' Pirmoji Macro

Sheets("Svorio Patvirtinimo dok").Select
ActiveSheet.Shapes.Range(Array("Column1")).Select
Sheets("Svorio Patvirtinimo dok").Copy
Rows("1:6").Select
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll Down:=66
Dim LastRow As Long, myCell As Range, myRange As Range
Dim myCell1 As Range

LastRow = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
Set myCell1 = Range("A" & LastRow)
Cells.Find(What:="• Praau atkreipti d?mes?:", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False).Activate

Set myCell = ActiveCell
Set myRange = Range(myCell, myCell1)

myRange.EntireRow.Delete
ActiveWindow.SmallScroll Down:=-78
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

ActiveSheet.Copy
MsgBox "This new workbook will be saved as MyWb.xls(x)"

ActiveWorkbook.SaveAs ThisWorkbook.Path & "\MyWb", xlWorkbookNormal
MsgBox "It is saved as " & ActiveWorkbook.FullName & vbLf & "Press OK to close it"

ActiveWorkbook.Close False

End Sub

下面的代码将只修复帖子的相关部分,如何将“Svorio Patvirtinimo dok”工作表保存为新工作簿,以及根据“G1”中的值确定文件名

您还可以在代码的上部做很多改进,有很多不必要的
Select
Selection
ActiveCell

阅读为什么应该避免使用
选择
激活
和其他类似类型

修改代码(仅适用于相关章节):


下面的代码将只修复帖子的相关部分,如何将“Svorio Patvirtinimo dok”工作表保存为新工作簿,以及根据“G1”中的值确定文件名

您还可以在代码的上部做很多改进,有很多不必要的
Select
Selection
ActiveCell

阅读为什么应该避免使用
选择
激活
和其他类似类型

修改代码(仅适用于相关章节):

Dim Sht As Worksheet
Dim NewWBName As String

' set the worksheet object
Set Sht = ThisWorkbook.Sheets("Svorio Patvirtinimo dok")

MsgBox "This new workbook will be saved as MyWb.xls(x)"

' set the bnew name in same path and file name according to the value in "G1"
NewWBName = ThisWorkbook.Path & "\" & Sht.Range("G1").Value2 & ".xlsx"

'save sheet as workbook with the name in cell "G1"
Sht.SaveAs NewWBName, 51 ' save format 51 - .xlsx

MsgBox "It is saved as " & NewWBName & vbLf & "Press OK to close it"

ActiveWorkbook.Close False