【发布时间】:2019-05-14 00:33:30
【问题描述】:
我有一个需要定期格式化的数据的数据库转储。我正在尝试为此制作一个宏,并且大约有 90% 在那里.... 数据转储在其他地方的 CSV 中。我的宏在工作簿 (Toolwb) 中,包含几个宏、一个查找表 (LookUpSheet) 和一个带有一些公式的表 (FormulaSheet)。
我遇到了一个问题,我从我的 FormulaSheet 复制的公式在我的 LookUpSheet 上使用VLOOKUP。由于我在不同的工作簿上运行代码,我需要复制公式并在其中引用 Toolwb ......据我所知,Toolwb 不喜欢在公式中指定 Toolwk 的公式。它只是将它们编辑出来,然后在 vba 将其复制到数据转储时中断。所以为了解决这个问题,我将单元格更改为文本类型而不是一般类型。完美的!复制得很好......但是......一旦它在数据转储单元格中,我似乎无法让公式“刷新”。我必须打开单元格并按 Enter 键才能刷新和评估数据。
我尝试在粘贴后更改单元格 General,然后将其设置为自动计算。我也试过公式刷新按钮。我错过了什么?
我很乐意从 vba 而不是单元格中粘贴此内容,但我很难在语法中获取引号。
=RIGHT(VLOOKUP(VALUE(CONCATENATE(B2,".",IF(LEN(C2)<2,CONCATENATE("0",C2),C2))),'[Toolwb]LookUpSheet'!$C$2:$D$4419,2,TRUE),LEN(VLOOKUP(VALUE(CONCATENATE(B2,".",IF(LEN(C2)<2,CONCATENATE("0",C2),C2))),'[Toolwb.xlsm]LookUpSheet'!$C$2:$D$4419,2,TRUE))-6)
【问题讨论】:
-
你试过VBA
newWorkbook.Sheets("Sheet1").Range("A2").Formula = formulaWorkbook.Sheets("FormulaSheet").Formula吗? -
这个!这完全有效,非常感谢。