首页
学习
活动
专区
工具
TVP
发布

重复宏
EN

Stack Overflow用户
提问于 2018-10-19 04:29:35
回答 1查看 33关注 0票数 -1

我在找一种可以复制和粘贴单元格的软糖。

单元格X的值必须复制到单元格X+ 6。因此,必须将A1文本"Xteam“复制到单元格A7,直到单元格A380。这同样适用于单元格B2 + 6。

它必须是动态的,所以单元格和序列是动态的。我希望能够自己指出它是哪个细胞和序列..

我如何做到这一点,

我有这个,但没有像我想要的那样工作:

代码语言:javascript
复制
Sub sequence()
Const Nxt As Long = 7
Dim A As Variant, B As Variant, V As Variant, N As Long
A = Range("A1").Value
B = Range("B2").Value
ReDim V(Nxt To 380, 1 To 2)
For N = Nxt To 380
    If N Mod 6 = 1 Then
        V(N, 1) = A
        V(N + 1, 2) = B
    End If
Next N
Application.ScreenUpdating = False
Range("A" & Nxt, "B380").Value = V
Application.ScreenUpdating = True
End Sub

先谢谢你,埃尔马尔

EN

回答 1

Stack Overflow用户

发布于 2018-10-19 06:08:03

好的,这是在假设你想要指定你想要向下拷贝A1B2的次数的前提下。所以你的循环是相当混乱的,而不是使用MOD,因为你知道你想要它每6个空格,而且你没有对其他单元格做任何事情,只是为了索引而将数字乘以6会更容易。这还可以帮助您更容易地计算出传输数组的维数,因为您希望指定要复制的次数。

同样值得注意的是,你的Application.screenupdating = False在错误的地方。你真正想要加速的地方是在循环期间。因此,如果要包含它,我会将它放在代码顶部附近,但这不是非常耗费资源,所以我就省略了它。

通常情况下,如果dim Constants有助于代码的易读性,这对它是有好处的,但在这种情况下,它似乎没有增加任何清晰度。例如,在改变单元格的颜色并使用颜色索引时,它可能会有所帮助。Constant Red as long = 3使它更容易理解,而constant Nxt as long = 7没有添加太多内容。

我没有使用同时处理AB的二维数组,而是选择使用两个列向量,因为它们是交错的,这使得粘贴变得更容易,并且它简化了数学,因为您不需要在交错的行上有项。

最后,我不能鼓吹这一点,但是请,请,请使用一目了然的名称。尽管它在这种情况下可能没有产生很大的不同,但如果你遇到一个更复杂的项目,人们可能会看到它,并不得不想知道V是用来做什么的。它还可以让人们更容易地帮助你,因为他们不需要坐下来思考每个变量的含义。

我还指定了它所查看的工作表,因此目前它只会查看索引1所指示的第一个工作表。请确保您更改了它,以便它更改正确的工作表。

希望这对我们有所帮助,欢迎来到Stack Overflow。

代码语言:javascript
复制
Option Explicit

Sub sequence()

    Dim A As Variant
    Dim B As Variant
    Dim N As Long
    Dim ArrA() As Variant
    Dim ArrB() As Variant
    Dim NumCopies As Long

    A = Range("A1").Value
    B = Range("B2").Value
    NumCopies = 100

    ReDim Preserve ArrA(1 To NumCopies * 6, 1 To 1)
    ReDim Preserve ArrB(1 To NumCopies * 6, 1 To 1)

    For N = 1 To NumCopies
        ArrA(N * 6, 1) = A
        ArrB(N * 6, 1) = B
    Next N


    Worksheets(1).Range("A2:A" & 1 + NumCopies * 6).Value = ArrA
    Worksheets(1).Range("B3:B" & 2 + NumCopies * 6).Value = ArrB

End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52882070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档