【问题标题】:VBA application on excelExcel 上的 VBA 应用程序
【发布时间】:2015-08-12 21:21:07
【问题描述】:

我正在将 VBA 与应用程序一起使用,以通过电子表格中的一些操作自动执行 Excel。但是我不知道如何以编程方式复制单元格。

我尝试使用此代码:

Form1.ex.Range(r1.Text + ":" + r1x.Text).Activate()
Form1.ex.ActiveCell.Copy(Destination:=Form1.ex.Range(c1.Text + ":" + c2.Text))

其中r1 是我复制的内容,然后r1x 包含r1r1x 的文本。它基本上选择了一系列单元格,然后打算复制它们,但效果不佳。

如何修复此代码以将单元格从一个位置复制到另一个位置?

【问题讨论】:

  • 我将您的代码和来自 cmets 的解释添加到您的问题中,并稍微整理了您的问题。看看我是如何格式化代码的,因为你之前说你遇到过问题,the editing help 也是一个有用的资源。如果您可以edit your question 解释此代码“无法正常工作”的原因,它将帮助任何试图回答您的问题的人。
  • "r1x 包含 r1 和 r1x 的文本。" - 你在这里是什么意思?
  • 啊,似乎 SuperBiasedMan 编辑错了,但无论如何谢谢:3 顺便说一句,看看我将如何解释它我需要复制大约 8 或 9 个单元格,所以我决定创建第一个单元格和最后一个单元格单元格,因此很容易复制,例如:A1:A9 而不是 A1、A2、A3 等。r1 是第一个单元格 (A1) r1x 是最后一个单元格 (A9) 所以我想复制所有这些 (A1到 A9) 范围
  • 什么是 r1、r1x、c1 和 c2?这些形状是您创建的吗?它们是细胞吗?因为如果它们是单元格,那么当我期望 .Formula 或 .Value 时,您正在使用 .Text 函数。我的建议是将您的变量设置为等于电子表格中的特定单元格,然后您专门命名这些单元格以便能够在代码中引用它们,而不管这些单元格在插入列/行时如何移动。

标签: vba excel


【解决方案1】:

给你,这是如何复制:

'Copy range A1:A9 from Sheet1 to Sheet2 A1 :
ThisWorkbook.Sheets("Sheet1").Range("A1" & ":" & "A9").Copy _
    Destination:=ThisWorkbook.Sheets("Sheet2").Range("A1")

'With your references :
Form1.ex.Range(r1.Text & ":" & r1x.Text).Copy _
    Destination:=Form1.ex.Range(c1.Text)

在您的示例中,您使用 Form1 和 ex,如果它们分别是工作簿和工作表,则代码可以工作,但如果是 UserForm,则不会。

不要用+连接字符串,是运算符&

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 2011-04-07
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多