使用没有定义范围的 vba 粘贴到 Excel sheet

Paste in Excel sheet using vba without a defined range

我想做的是从另一个来源 Navision 复制一个 table,然后将其粘贴到 excel,指定格式等。我在粘贴部分时遇到了问题. "copying" 过程无关紧要,如果知道如何使其自动化就好了,但这不是我的首要任务。

复制的内容:

- 具有 7 列和可变行的 table 来自 Navision

存在的问题:

- 粘贴没有定义行的 table ✓(感谢 Ionestorm)
- VBA 无法识别剪贴板中的信息

我认为主要问题是:

- 我想它是在 "external clipboard" 中复制的并且 vba 无法识别它。

你应该知道我是 VBA 的菜鸟,我只有 C++ 和基础知识 MySQL,这是我第一次有兴趣在日常工作中应用这些知识任务,使它们更容易。我一直在试验。

我在 VBA 中找到的有关复制粘贴的信息指出,始终需要有一个定义的范围来粘贴它,而本练习没有。而且我只发现了从 excel 张复制粘贴到其他 excel 张的例子。所以我不知道如何开始。

从 "external Windows" 剪贴板将其粘贴到活动单元格的功能是什么?

您不需要定义范围。试试下面的代码:

Sub pasteToRange()
    Dim rng As Range
    Set rng = Application.InputBox("Pick worksheet and cell", "Choose paste range", "A1", Type:=8)
    rng.Worksheet.Paste rng.Cells(1, 1)
End Sub

这允许您手动 select 粘贴的位置,但您可以自动执行。粘贴位使用从剪贴板粘贴的工作表函数。