vba - Excel 粘贴到可见、转置为链接组合功能

标签 vba excel excel-formula

希望你们一切都好。我正在编写一个工作簿,其中有一列包含 10 个连续单元格。

Data to be Copy

在另一张纸上有一行,我想将数据粘贴为转置,但问题是,该行中的某些单元格不连续,其中一些单元格被隐藏。如图所示: Data to be pasted

现在我只想将数据作为转置粘贴到可见单元格,并且这些单元格必须作为链接粘贴,就像对第一张纸进行任何更改一样,第二张纸中的相关单元格也应该更改。幸运的是,我自己做了很多工作,因为我发现如何仅通过以下 VBA 代码粘贴到可见单元格:

Sub PasteToVisible()
'Declarations
Dim Range1            As Range
Dim Range2            As Range
Dim InputRange      As Range
Dim OutputRange     As Range

'Prompt Box Title
xTitleId = "Paste to Visible"
'Start Input Range
Set InputRange = Application.Selection
'Select input range box
Set InputRange = Application.InputBox("Copy Range :", xTitleId, InputRange.Address, Type:=8)
'Select output range box
Set OutputRange = Application.InputBox("Paste Range:", xTitleId, Type:=8)
'Loop to paste the range in visible cells
For Each Range1 In InputRange
    Range1.Copy
    For Each Range2 In OutputRange
        If Range2.EntireRow.RowHeight > 0 Then
            Range2.PasteSpecial
            Set OutputRange = Range2.Offset(1).Resize(OutputRange.Rows.Count)
            Exit For
        End If
    Next
Next
Application.CutCopyMode = False

结束子'

这可以将值粘贴到可见单元格,但仅限于列(不是转置)。对于转置和链接,我使用简单的转置 excel 公式,如下图所示:enter image description here

这可以以转置形式链接值。我想将所有三个功能(粘贴到可见、转置和作为链接)合并到一个步骤中。请帮我解决这个问题。我将非常感谢任何建议和帮助。提前致谢。

最佳答案

正如评论中所述,这是我在评论中发布的内容的示例。

Sub marine()

    'Key board shortcut Ctrl + Shift + C

    Dim cr As Range, dr As Range, c As Range
    Dim xTitleId As String
    Dim i As Integer

    xTitleId = "Paste to Visible"
    If TypeOf Selection Is Range Then Set cr = Selection

    On Error Resume Next
    Set dr = Application.InputBox("Destination Range: ", xTitleId, , , , , , 8)
    On Error GoTo 0

    If Not dr Is Nothing _
    And Not cr Is Nothing Then
        Set dr = dr.Resize(1, 1)
        i = 0
        For Each c In cr
            Do While dr.Offset(, i).EntireColumn.Hidden
                i = i + 1
            Loop
            dr.Offset(, i).Formula = "=" & c.Address(, , , True)
            i = i + 1
        Next
    End If

End Sub

我在 Ctrl+Shift+C 快捷方式中分配了它。
它将复制当前选择,然后提示您输入目标单元格。
只需选择目标单元格(单个单元格即可),它就会粘贴链接。
尚未优化,但我希望这能给您一个想法。

关于vba - Excel 粘贴到可见、转置为链接组合功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48780099/

相关文章:

Excel:按增量顺序自动填充单元格直到给定值

excel - 用户窗体内的进度条

vba - 导出为 pdf,并在一页中包含范围选择单元格

excel - 如何分别识别分组列和隐藏列?

java - 创建渐变填充单元格

vba - Excel VBA 函数仅在更改时更新

Excel - 在没有帮助列的情况下计算其值满足复杂条件的行

excel - 如何在Excel中返回满足两个条件的行值

vba - BackColor 和 ForeColor 的区别

用于 Excel 导出的 C# OpenXML-only 特定单元格样式