Vba 要保存的Excel宏

Vba 要保存的Excel宏,vba,excel,macros,Vba,Excel,Macros,我知道我应该在access或VB中这样做,但我不知道如何使用它们。目前,我在表单的末尾有一个提交按钮,可以将工作簿保存并关闭为输入到某个单元格的内容 我正在寻找一种方法,能够做同样的事情,但打破工作表的工作簿。因此,它只将工作表保存为自己的excel文件,并将名称输入到某个单元格中。下面是我当前使用的宏 Sub Saveworkbook() Application.DisplayAlerts = False Dim dName$, vName$ dName = Range("B8")

我知道我应该在access或VB中这样做,但我不知道如何使用它们。目前,我在表单的末尾有一个提交按钮,可以将工作簿保存并关闭为输入到某个单元格的内容

我正在寻找一种方法,能够做同样的事情,但打破工作表的工作簿。因此,它只将工作表保存为自己的excel文件,并将名称输入到某个单元格中。下面是我当前使用的宏

Sub Saveworkbook()
Application.DisplayAlerts = False
Dim dName$, vName$
    dName = Range("B8")
    vName = ActiveWorkbook.FullName
    ActiveWorkbook.SaveAs "W:\Test\" & dName
    ActiveWorkbook.SaveAs vName
    ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
如果它可以添加日期和用户计算机来保存名称(但不是必需的),那也很酷

提前谢谢 山姆

类似这样的事情-

Sub SaveSheet()

Dim wbkDashboard As Workbook
Dim wsTarget As Worksheet
Set wsTarget = Thisworkbook.worksheets("Sheet1")

Dim strFileName As String
strFileName = wsTarget.Range("B8").Value _
    & Format(Now, "ddmmyyyy") & "-" & Environ("username") & ".xlsx"

Set wbkDashboard = Workbooks.Add
wsTarget .Copy Before:=wbkDashboard.Sheets(1)

For intSheetCount = 2 To wbkDashboard.Sheets.Count
    wbkDashboard.Sheets(2).Delete
Next

wbkDashboard.SaveAs "W:\Test\" & wsTarget.Range("B8").Value  _
    & Format(Now, "ddmmyyyy") & "-" & Environ("username") & ".xlsx"

wbkDashboard.Close
wsTarget.Range("B8").Value= strFileName

Set wsTarget = Nothing
Set wbkDashboard = Nothing
End Sub
类似这样的事情-

Sub SaveSheet()

Dim wbkDashboard As Workbook
Dim wsTarget As Worksheet
Set wsTarget = Thisworkbook.worksheets("Sheet1")

Dim strFileName As String
strFileName = wsTarget.Range("B8").Value _
    & Format(Now, "ddmmyyyy") & "-" & Environ("username") & ".xlsx"

Set wbkDashboard = Workbooks.Add
wsTarget .Copy Before:=wbkDashboard.Sheets(1)

For intSheetCount = 2 To wbkDashboard.Sheets.Count
    wbkDashboard.Sheets(2).Delete
Next

wbkDashboard.SaveAs "W:\Test\" & wsTarget.Range("B8").Value  _
    & Format(Now, "ddmmyyyy") & "-" & Environ("username") & ".xlsx"

wbkDashboard.Close
wsTarget.Range("B8").Value= strFileName

Set wsTarget = Nothing
Set wbkDashboard = Nothing
End Sub

此代码将保存您在当前版本中所做的任何更改,然后仅将活动工作表保存为一个新工作簿,其中包含用户名和日期(环境变量的贷方为@will)


此代码将保存您在当前版本中所做的任何更改,然后仅将活动工作表保存为一个新工作簿,其中包含用户名和日期(环境变量的贷方为@will)


是否仅删除并保存活动工作表?是否仅删除并保存活动工作表?谢谢,但我收到以下错误:运行时错误“9”:下标超出范围您可能需要将ThisWorkbook.Sheets(“Sheet1”)更改为Application.ActiveSheet,以检查是否需要范围内的值(“B8”)在文件中保存名称是否太正确?可能需要将Range(“B8”).Value更改为Application.ActiveSheet.Range(“B8”).Value-已更改以反映在代码中非常感谢,这已奏效,但文件保存为#060416用户名,这很好,但希望单元格B8中的文本也使用该名称。然后,当我打开它保存的文件时,它是空的,并称为sheet1(2)再次更新-将“sheet1”更改为工作簿中的相关工作表名称谢谢,但我收到以下错误:运行时错误“9”:下标超出范围您可能要将ThisWorkbook.Sheets(“sheet1”)更改为Application.ActiveSheet,只是为了检查您是否也希望文件保存名中的范围(“B8”)中的值?可能需要将Range(“B8”).Value更改为Application.ActiveSheet.Range(“B8”).Value-已更改以反映在代码中非常感谢,这已奏效,但文件保存为#060416用户名,这很好,但希望单元格B8中的文本也使用该名称。然后,当我打开它保存的文件时,它是空的,并且称为sheet1(2)再次更新-将“sheet1”更改为工作簿中的相关工作表名称,只需再问一个问题。有没有办法阻止它保存初始表单。它似乎保存数据,然后导出填充表,但当我再次打开表单时,所有数据仍然存在于上次输入的数据中。谢谢,还有一个问题。有没有办法阻止它保存初始表单。它似乎保存数据,然后导出填充表,但当我再次打开表单时,所有数据仍然存在于上次输入的数据中。谢谢