所以我遇到的问题是我们有一个通过excel制作的计划程序,设置用" ####"替换所有用户名和班次。它通常会显示名称输入和#34;请联系blah blah获取新版本。"这发生在2015年1月1日。现在,他们可以将计算机回溯到2015年1月1日之前的日期,一旦他们在任何单元格中键入值,工作表就会运行并重新显示所有数据。我们在全国各地都有位置,每两周将文件保存到Wildcardname.xls我正在寻找一种方法来编写一个命令按钮,找到另一个随机名称打开的工作簿,转到隐藏工作表" help&# 34;并将Cell 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
希望这个描述能够自...... ....
提前感谢您的帮助。
答案 0 :(得分:2)
这就是我使用的:
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 files (*.xlsx),*.xlsx
更改为Excel files (*.xls),*.xls