【发布时间】:2020-03-22 08:51:53
【问题描述】:
所以我正在集思广益,想出几种不同的方法来完成这项任务……但我所想的方法都不是很干净。我正在寻找一种干净的方法来实现这一点。
我有 2 个工作簿(工作簿 A、工作簿 B)。
工作簿 A 如下所示:
A B C D E
Tom Bob Sam Ted Meg
1 4 9 3 2
A,B,C... 是列(实际上不在工作表上),1,4,9,3,2 是最后一行的数据(可能是第 10 行或第 1000 行等)。 ..)
工作簿 B 如下所示:
A B
Sam 5
Meg 1
我想用工作簿 B 上的任何值更新工作簿 A。所以......在这个例子中...... Sam 和 Meg 有一个新值......所以我想更新工作簿 A 看起来像这样:
A B C D E
Tom Bob Sam Ted Meg
1 4 5 3 1
我觉得最简单的方法可能是制作字典或类似的东西,但我从未使用过字典,也不知道其他方法是否会更容易/更简单。
【问题讨论】:
-
我忘了你可以使用集合来实现键值对......类似于字典......我也从未这样做过......我不知道这是否会是一个优雅的解决方案...
-
嗨,XCELLGUY,您能否给我们提供更多信息,第一个工作簿是否仅从第二个工作簿更新?还是有其他来源会改变数据?我假设您谈论的不仅仅是相同数据的转置?当第二个工作簿中的数据发生变化时,您希望发生什么?您是要更改最后一行,还是要在其下方添加更新值的新行?
-
当然这是一个简化的例子……但这个例子的关键是我只有 sam 和 meg 的新数据……所以只有 sam 和 meg 会得到更新的值……其他值将保持不变...
-
等等...我可以使用“.PasteSpecial”和“SkipBlanks:=True”和“Transpose:=True”...我从来没有使用或知道“SkipBlanks”选项.. . 我想我可以做到。
-
是的...我认为这是我最简单的选择。我可以使用查找函数,然后使用“.PasteSpecial”、“SkipBlanks:=True”和“Transpose:=True”...
标签: arrays excel vba dictionary collections