在我的Excel问题中,我有一个相当有趣的问题。基本上我有两个工作簿,可以说VBA从外部工作簿发送/提取数据 - 有趣的问题
ACTIVE .XLSM和外部的.xls
主动具有打开外部和活跃一些数据下降宏,然后读external上的解决方案,并将其返回给活动工作簿上的用户。呼。这是一个艰难的。现在我们已经解决了这个问题。我个人认为外部(我无法修复它的公司只读文件)有一个小故障,当活动将其数据放入特定的下拉列表(数据验证)时,单元格(其他数据验证单元格可与此宏一起工作良好,但只有这个宏没有),外部上的解决方案单元不会更新,而是跳转到“#N/A”。此时,我的VBA遇到了一个bug,代码停止,外部仍然打开。当我看着外部,我推断这个单一的可变单元格是所有其他可变单元格决定解决方案的问题。
此时变量单元格包含数字“150”,尽管数据验证允许此选项,但解决方案单元格仍然会显示“#N/A”。直到我用“150”物理地点击单元格内部,例如我要编辑它,然后按回车键,#N/A就会纠正到合适的解决方案(假设这个解决方案是“$ 352.08” )请记住,变量单元格中的值永远不会更改,它可能只是“刷新”。
任何想法为什么会发生这种情况?我知道这是啰嗦,但我想这就是为什么我一直无法找到解决方案。也许有一个VBA解决方案可以模拟点击单元格,然后按回车,谁知道!
提前致谢!
以下是一些funsies的代码,尽管我不相信这是一个代码问题,因为它适用于我一直在使用的所有其他“external”。
...ElseIf Left(Range("C9").Value, 4) = "LA23" Then
CurWkbk = ActiveWorkbook.Name
PartNo = Worksheets("LINAK ONE").Range("C6").Value
PartNoID_B = Worksheets("GPL Pull").Range("B8").Value
PartNoID_C = Worksheets("GPL Pull").Range("C8").Value
PartNoID_D = Worksheets("GPL Pull").Range("D8").Value
PartNoID_E = Worksheets("GPL Pull").Range("E8").Value
PartNoID_F = Worksheets("GPL Pull").Range("F8").Value
PartNoID_G = Worksheets("GPL Pull").Range("G8").Value
PartNoID_H = Worksheets("GPL Pull").Range("H8").Value
PartNoID_I = Worksheets("GPL Pull").Range("I8").Value
PartNoID_J = Worksheets("GPL Pull").Range("J8").Value
PartNoID_K = Worksheets("GPL Pull").Range("K8").Value
Workbooks.Open ("EXTERNAL.xls")
Workbooks("EXTERNAL.xls").Sheets("Price").Activate
Range("E9").Value = PartNoID_B
Range("G9").Value = PartNoID_C
Range("I9").Value = PartNoID_D
Range("K9").Value = PartNoID_E
Range("M9").Value = PartNoID_F
Range("O9").Value = PartNoID_G
Range("Q9").Value = PartNoID_H
Range("S9").Value = PartNoID_I
Range("S9").Select
ActiveCell.Calculate
Range("U9").Value = PartNoID_J
Range("W9").Value = PartNoID_K
Range("AD7").Value = "LUS"
LUSPrice = Range("AE9").Value
Range("AD7").Value = "USD"
USDPrice = Range("AE9").Value
Range("AD7").Value = "DKK"
DKKPrice = Range("AE9").Value
Windows(CurWkbk).Activate
ActiveWorkbook.Sheets("Discount Calculator").Activate
Range("D5").Value = LUSPrice
ActiveWorkbook.Sheets("PRICE GENERATOR").Activate
Range("C25").Value = PartNo & " Pricing | LUS: $" & Round(LUSPrice, 2) & " | USD: $" & Round(USDPrice, 2) & " | DKK: kr " & Round(DKKPrice, 2)
MsgBox "Tillykke! Pricing for the " & PartNo & " has been generated. The price has been entered into the discount calculator.", , "Pricing Generated"
Workbooks("EXTERNAL.xls").Close False...
由于一吨@jstola!这是一个很好的练习,我已经将它应用于我的代码。不幸的是,它仍然不能解决问题,但它现在更加漂亮! –