用于修改未知名称打开工作簿中的单元格值的命令按钮

时间:2015-01-02 20:10:20

标签: excel vba excel-vba

所以我遇到的问题是我们有一个通过excel制作的计划程序,设置用" ####"替换所有用户名和班次。它通常会显示名称输入和#34;请联系blah blah获取新版本。"这发生在2015年1月1日。现在,他们可以将计算机回溯到2015年1月1日之前的日期,一旦他们在任何单元格中键入值,工作表就会运行并重新显示所有数据。我们在全国各地都有位置,每两周将文件保存到Wildcardname.xls我正在寻找一种方法来编写一个命令按钮,找到另一个随机名称打开的工作簿,转到隐藏工作表" help&# 34;并将Cell A184的值更改为" 01/01/2016"或者我插入的任何日期。哪个会删除" ####"发出并用原来的输入值替换它。然后,用户可以保存文件并继续。

我浏览了各种帮助板,发现这个...提示用户选择工作簿。这将是需要更改的工作簿。

http://www.excelforum.com/excel-programming-vba-macros/695467-copy-values-from-a-worksheet-to-another-workbook-source-workbook-name-unknown.html

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

希望这个描述能够自...... ....

提前感谢您的帮助。

1 个答案:

答案 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