从宏代码打开另一个源文件

时间:2018-07-03 18:03:11

标签: excel vba excel-vba

因此,我正在1.1 Fixed Purch标签中处理文件。基本上只是清除某些单元格中的内容,并从BACKEND_Purchases_New_6-14-2018.xlsm文件标签(称为“固定合同”)中带来更新的资料。这两个文件都在同一目录中。仅一个问题,当我从BACKEND_Purchases_New_6-14-2018.xlsm文件中提取数据时,我希望宏忽略日期。我将如何使用VBA以下的版本?

由于我是初学者,请以一种可以完全理解的方式进行解释。

Sub attri_kinda_new()
 '
 ' attri_kinda_new Macro
 '

  Sheets("1.1 Fixed Purch").Select
  ActiveWindow.SmallScroll Down:=-3
  Range("B4:G4500").Select
  Selection.ClearContents
  Call Workbooks.Open(Filename:="BACKEND_Purchases_New_6-14-2018.xlsm", local:=True)
  Sheets("Contract Fixed").Select
  ActiveWindow.SmallScroll Down:=-18
  Range("AG2:AL5000").Select
  Selection.Copy
  Windows("US M2M Attribution 6-14-2018 training.xlsm").Activate
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub

1 个答案:

答案 0 :(得分:0)

如果您想选择一个文件来打开,可以使用如下所示的文件选择器方法:

Dim wb As Workbook

Set FileDialog = application.FileDialog(msoFileDialogFilePicker)
FileDialog.AllowMultiSelect = False
FileDialog.Title = "Select a file"
If FileDialog.Show = -1 Then
    strPath = FileDialog.SelectedItems(1)
End If

filepath = strPath

'open workbook
Set wb = Workbooks.Open(Filename:=filepath)

如果要从“后端购买”访问单元,可以使用:

wb.Sheets(index).Cells(1,1) 'Access Cell from workbook - change "index" to fit tab number

并根据需要对其进行修改。

如果要将信息从一张纸复制到另一张纸,则可以使用Range.Find方法,然后复制并粘贴结果,例如:

Dim headernamerow as Integer
Dim headernamecolumn as Integer

'Get location first cell with data - change "index" to fit tab number
headernamerow = wb.Sheets(index).Range("A1:Z500").Find(What:="HeaderName", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns).row + 1
headernamecolumn = wb.Sheets(index).Range("A1:Z500").Find(What:="HeaderName", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns).Column

'Paste information into 1.1 Fixed Purch tab - modify cell as needed
ThisWorkbook.Sheets("FixedPurchTab").Cells(1, 1).value = wb.Sheets(index).Cells(headernamerow,headernamecolumn).value

也许有更好的方法,但这是我所知道的方法。