gpt4 book ai didi

vba - 从两个带有变量名称的打开工作簿导入数据

转载 作者:行者123 更新时间:2023-12-03 02:31:07 24 4
gpt4 key购买 nike

我正在尝试从两个不同的打开工作簿(BCH mm-yy.xlsx 和 Portafolio mm-yy.xlsx)激活、处理数据并导入信息,其中 mm-yy 每月都会变化。

作为如何激活两个工作簿的示例,我执行了以下操作:

Sub ActivateWorkbook()

FName1 = Dir("c:\BCH" & "??-??" & ".xlsx")
Range("A5").Select
ActiveCell.FormulaR1C1 = "OK"

FName2 = Dir("c:\Portafolio" & "??-??" & ".xlsx")
Range("A3").Select
ActiveCell.FormulaR1C1 = "OK"

End Sub

问题是,当我运行宏时,它无法识别我正在引用哪个工作簿,并且它仅在其中一个工作簿中执行任务(以“OK”为例)。也就是说,当它应该从投资组合的 BCH 和 A3 中的 A5 中写入“OK”时,它会在 BCH 工作簿的单元格 A3 和 A5 中写入“OK”。有什么解决办法吗?

最佳答案

Any advice on how to solve it?

当然。众所周知,这种随机模式是由于使用不合格的范围和工作表对象而导致的。当您引用非限定范围时,它会自动引用 ActiveSheet,无论它在运行时发生什么。

解决方案是使用对象的完全限定。您可以通过保存对您打开的任何工作簿的显式引用并指定保存您的范围的工作表来实现此目的。

FName1 = Dir("c:\BCH" & "??-??" & ".xlsx")
Dim wb1 as workbook, ws1 as worksheet
Set wb1 = Workbooks.open(FName1)
Set ws1 = wb1.Worksheets("Sheet1") ' <-- This is a fully qualified Worksheet
ws1.Range("A5").FormulaR1C1 = "whatever" ' <-- This is a fully qualified range

' And similarly with FName2...

关于vba - 从两个带有变量名称的打开工作簿导入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43034054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com