所以我遇到的问题是我们有一个通过 Excel 制作的计划程序,该程序设置为用“####”替换所有用户名和轮类时间,并且通常会显示名称输入“联系人等等”对于新版本。”这发生在 2015 年 1 月 1 日。目前,他们可以将计算机回溯到 2015 年 1 月 1 日之前的日期,一旦他们在任何单元格中键入一个值,工作表就会运行,并且所有数据都会重新出现。我们在全国各地都有位置,每两周将文件保存到 Wildcardname.xls 我正在寻找一种方法来编写一个命令按钮,该按钮可以找到其他随机名称打开的工作簿,转到隐藏工作表“帮助”并更改单元格 A184 为“01/01/2016”或我插入的任何日期。这将删除“####”问题并将其替换为最初输入的值。然后用户可以保存文件并继续。
我正在浏览各种帮助板,发现这个..提示用户选择工作簿。这将是需要更改的工作簿。
Sub CopyData()
Dim DstRng As Range
Dim DstWkb As Workbook
Dim DstWks As Worksheet
Dim FileFilter As String
Dim Filename As String
Dim SrcRng As Range
Dim SrcWkb As Workbook
Dim SrcWks As Worksheet
Dim SheetName As String
SheetName = "Output Table"
FileFilter = "Excel Workbooks (*.xls), *.xls"
Filename = Application.GetOpenFilename(FileFilter, , "Open Source Workbook")
If Filename = "False" Then
MsgBox "Open Source File Canceled."
Exit Sub
End If
Set SrcWkb = Workbooks.Open(Filename)
Set SrcWks = SrcWkb.Worksheets(SheetName)
Set SrcRng = SrcWks.Range("A2:H20")
FileFilter = "Excel Workbooks (*.xls), *.xls"
Filename = Application.GetOpenFilename(FileFilter, , "Open Destination Workbook")
If Filename = "False" Then
MsgBox "Open Destination File Canceled."
Exit Sub
End If
Set DstWkb = Workbooks.Open(Filename)
Set DstWks = DstWkb.Worksheets(SheetName)
Set DstRng = DstWks.Range("A2:H20")
SrcRng.Copy Destination:=DstRng
End Sub
可以修改它来完成我想要完成的事情吗?
我还不能发布图像,所以这里有一个模型的链接。左边是程序拍摄前的样子,右边是我想要的样子。
http://i528.photobucket.com/albums/dd330/DLN1223/mockup.jpg
希望这个描述能够使......
预先感谢您的帮助。
最佳答案
这是我使用的:
Dim FileToOpen As Variant
Dim WKbook as workbook
FileToOpen = Application.GetOpenFilename("Excel files (*.xlsx),*.xlsx", , "Select Workbook to Open")
If FileToOpen = False Then Exit Sub 'quit on cancel
Set Wkbook = Workbooks.Open(FileToOpen, False, False)
有了这个,我可以设置我想要的值,并保存更改
Wkbook.Sheets("help").Range("A184")=#1/1/2016#
Wkbook.Close SaveChanges:=True
根据文件类型,您可能需要将 Excel 文件 (*.xlsx)、*.xlsx
更改为 Excel 文件 (*.xls)、*.xls
关于vba - 用于修改未知名称打开工作簿中的单元格值的命令按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27747962/