【问题标题】:VBA Excel taking control of the cells on the another workbookVBA Excel 控制另一个工作簿上的单元格
【发布时间】:2020-04-28 13:46:38
【问题描述】:

我想将外部 Excel 文件中的单元格与我的活动工作簿中的单元格链接起来。

我在这里发现了一些不错的东西:

VBA change value in another workbook

并尝试将此代码与我的代码结合起来:

 Sub Splicing()
 Dim VariableX As Long
 VariableX = ActiveWorkbook.Sheets("Frontsheet").Range("D10").Value
 Path = ActiveWorkbook.Path & "\Splicing Template_V1.0.xlsx"
 Workbooks.Open (Path)
 Worksheets("Frontsheet").Cells(4, 10).Value = VariableX

 End Sub

调试器说:类型不匹配

有没有办法在两个单独的工作簿之间链接这些单元格?

【问题讨论】:

  • D10 中的内容不是Long,而是String。或者只使用Variant
  • 是的,确实如此。我变了。现在文件正在打开,但没有任何改变。
  • 您没有使用您打开的工作簿。您正在从工作簿中获取一个值,打开另一个工作簿,然后将该值粘贴回您从中获取它的位置。
  • 您甚至都无法访问其他工作簿。 VariableX 来自 FrontSheet,然后您在 FrontSheet 上分配一个单元格值 = Variable X
  • @Warcupine 这是我在 VBA 中所需要的 :) 到目前为止,打开工作簿的代码正在运行

标签: excel vba


【解决方案1】:
Sub Splicing()
 Dim VariableX As string
 Dim newbook as workbook
 VariableX = ActiveWorkbook.Sheets("Frontsheet").Range("D10").Value
 Path = ActiveWorkbook.Path & "\Splicing Template_V1.0.xlsx"
 set newbook = Workbooks.Open(Path)
 newbook.sheets("Frontsheet").Cells(4, 10).Value = VariableX 'Not sure if this is the right worksheet name

 End Sub

【讨论】:

  • 这正是我现在所拥有的。文件正在打开,但内部未报告任何更改。
  • 如果您的图片是两个工作簿,那么您尝试写入的单元格已经是相同的值,因此您不会看到变化。
  • 那我换个图吧。对不起,我说错了
  • 对我有用,虽然 Cells(4, 10) 是第 4 行第 J 列而不是第 10 行第 D 列
  • 是的!确实如此。因为我已经将 I 和 J 合并了,所以我看不到结果。现在是正确的。我非常感谢您的提示。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 2014-12-09
  • 2017-08-18
  • 1970-01-01
相关资源
最近更新 更多