【问题标题】:Excel VBA Copy Operation (with Hidden Columns in-between)Excel VBA 复制操作(中间有隐藏列)
【发布时间】:2013-01-26 01:31:40
【问题描述】:

我遇到了一个奇怪的要求。以下是对我的问题的模拟。

在单元格 E1 中,我的值为 1。

在单元格 F1 中,我的值为 2。

B 列被隐藏。

现在使用 VBA 我需要将 E1 和 F1 复制到单元格 A1 以便 A1 包含 “1”和C1包含“2”(因为B列被隐藏)

简而言之,我需要在粘贴时跳过隐藏的列。

我知道我可以进行 2 次复制操作,但隐藏列的数量和要复制的单元格数量并不总是相同的。所以我需要一次性完成复制操作。

如何使用 Excel VBA 实现这一点?

【问题讨论】:

  • 不清楚为什么需要在一次操作中进行复制。一个接一个地复制两个单元格有什么问题?
  • @TimWilliams:因为它不是固定的,每次我只需要复制 2 个单元格。此外,隐藏在中间的列数也不是固定的。现在有意义吗?

标签: vba excel


【解决方案1】:
Sub Tester()
    CopySkippingHidden ActiveSheet.Range("A1:C1"), _
                       ActiveSheet.Range("F1")
End Sub


Sub CopySkippingHidden(rngToCopy As Range, pasteStart As Range)
    Dim c As Range
    For Each c In rngToCopy.Cells
        Do While pasteStart.EntireColumn.Hidden
            Set pasteStart = pasteStart.Offset(0, 1)
        Loop
        c.Copy pasteStart
        Set pasteStart = pasteStart.Offset(0, 1)
    Next c
End Sub

【讨论】:

  • 如果你这样做的话:For Each c in rngToCopy.Columns
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
相关资源
最近更新 更多