VBA - 为任何用户保存工作表的特定位置

Posted

技术标签:

【中文标题】VBA - 为任何用户保存工作表的特定位置【英文标题】:VBA - Save worksheet specific location for any user 【发布时间】:2017-07-18 15:49:46 【问题描述】:

我正在尝试将两个代码合并为一个,但我正在努力编写完整的代码。简而言之,用户(具有用户 ID)会将(工作簿的)一张工作表保存到特定位置(例如在他的桌面上),每个人都是唯一的(因为个人笔记本电脑)。她首先是在我的桌面上保存工作表的代码:

Sub create_file()
Dim LastRow As Long, LR As Long, lrow As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
Range("A2:B2").Select
Selection.AutoFill Destination:=Range("A2:B" & LastRow)
Rows("1:1").Select
Selection.AutoFilter
Range("A1").AutoFilter Field:=1, Criteria1:="Y"
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("C2:I" & LR).SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Paste for gA ASSA formula").Select
Range("A5").Select
ActiveSheet.Paste
lrow = Sheets("Paste for gA ASSA formula").Cells.Find(What:="*",_ 
LookIn:=xlValues, SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row - 3
Sheets("Formula for gA ASSAa").Select
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & lrow)
ThisWorkbook.Sheets("Formula for gA ASSAa").Copy
ActiveWorkbook.SaveAs "C:\Users\jeofbist3\Desktop\Deletion_Request" & 
Format(Date, "mmddyyyy") & ".xlsx", FileFormat:=51

以下是将工作簿保存在现有位置(无论在哪里)的代码:

Sub savefile()
Dim fname As String
fname = Application.DefaultFilePath & "\" & ActiveWorkbook.Name
MsgBox (fname)
ActiveWorkbook.SaveAs Filename:=fname
End Sub

最好的选择是将其保存在每个用户的桌面上。 有人有想法吗?提前非常感谢:)

【问题讨论】:

【参考方案1】:

要将某些内容保存在用户桌面上,您应该使用此"C:\users\" & Environ("Username") & "\Desktop" 作为路径。并且用户必须有权限才能在这个目录中保存一些东西。

【讨论】:

以上是关于VBA - 为任何用户保存工作表的特定位置的主要内容,如果未能解决你的问题,请参考以下文章

VBA 打印为 PDF 并使用自动文件名保存

在 Excel VBA 中使用表单另存为位置保存工作表

在 Excel 中将某些特定单元格从一个工作表复制到另一个工作表的 VBA 可能是啥?

VBA 打开任何工作簿

vba excel怎么获取指定工作表的行数、列数

保存工作表的副本并撤销对原始文件的所有更改