在Excel中将一个工作簿复制到另一个工作簿并将单元格数据复制到另一个工作簿

时间:2018-12-03 17:47:24

标签: excel

我需要在第二个工作簿上找到一个特定的单元格并返回其值。 我的范围始终在变化,但是我可以滤除不良值。 我需要从一个工作簿复制(MCN#)到另一个工作簿的单元格正在更改其格式。

有时它是单行,有时会合并到7行左右。我能正常工作的代码是:

=HLOOKUP("MCN #",[CuPe1810_CH520.xlsx]CuPe1820_CH520!$A$1:$S$16,2,FALSE)

我要从链接的工作簿中查找“ MCN#”,并在主工作簿上返回分配给它的行值(B3)。

我需要从用户输入值更改[CuPe1810_CH520.xlsx],并且需要将制表符或范围(CuPe1820_CH520!$ A $ 1:$ S $ 16)更改为相同的名称,然后减去.xlsx,在我的示例中,CuPe1820_CH520将代表选项卡名称和.xlsx名称。我需要帮助,以便可以根据用户输入进行操作,可以通过公式或宏完成操作,我不在乎。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

在下面的示例中,F1(或短代码为$F$1)是您正在编辑以更新公式的单元格。

A1是我们正在更新的单元格公式。

如果有多个单元需要更新,则可以在For Each循环中循环,也可以使用Range("SomeRange").AutoFill Destination:=Range("SomeDestination")函数。

Application.ActiveWorkbook.Path可能需要根据您的情况进行更新-指向文件的路径。

这进入工作表对象(Worksheet_Change事件)。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$1" Then
    'Range to update formula goes here
    Range("A1").Formula = "='" & Application.ActiveWorkbook.Path & "\[" & [F1] & ".xlsx]" & [F1] & "'!A1"
End If
End Sub

在上面的示例中,您无需在输入字符串中放入.xlsx