如何在另一个工作表的列和行之间创建引用,反之亦然-Excel VBA?

如何在另一个工作表的列和行之间创建引用,反之亦然-Excel VBA?,excel,vba,Excel,Vba,我已经问过并提供了我自己的答案,虽然不太好,但很有效。 但是,现在我想链接另一张图纸上的单元格。然而,我编写的程序无法将单元格从一个工作表引用到另一个工作表 示例 第1页,A栏 第2张,第1排 我想要 Sheet1!A1 = Sheet2!A1 Sheet1!A2 = Sheet2!B2 这就是你正在尝试的吗 Option Explicit Sub Sample() Dim cRange As Range, rrange As Range Dim i As Long, j

我已经问过并提供了我自己的答案,虽然不太好,但很有效。

但是,现在我想链接另一张图纸上的单元格。然而,我编写的程序无法将单元格从一个工作表引用到另一个工作表

示例

第1页,A栏

第2张,第1排

我想要

Sheet1!A1 = Sheet2!A1
Sheet1!A2 = Sheet2!B2

这就是你正在尝试的吗

Option Explicit

Sub Sample()
    Dim cRange As Range, rrange As Range
    Dim i As Long, j As Long
    Dim cPrompt As String, cTitle As String
    Dim rPrompt As String, rTitle As String

    On Error GoTo Whoa

    cPrompt = "Please Choose a Column without Header"
    cTitle = "Specify Column Range"

    rPrompt = "Please Choose Starting cell"
    rTitle = "Specify row Range"

    Set cRange = Application.InputBox(cPrompt, cTitle, Type:=8)
    Set rrange = Application.InputBox(rPrompt, rTitle, Type:=8)

    For i = 1 To cRange.Count
        rrange.Offset(j).Formula = "=" & cRange.Parent.Name & _
        "!" & cRange.Cells(1, i).Address

        j = j + 1
    Next i

    Exit Sub
Whoa:
    MsgBox Err.Description
End Sub

您可以通过使用间接函数以更简单的方式执行此操作,如下所示:

=INDIRECT("Sheet1!R1C"&ROW()+4,FALSE)

这将使用当前行加上偏移值将当前行与要引用的第一列对齐。当您向下复制公式时,行号将增加,但将用于增加列引用。

我想链接其他工作表中的单元格,它不能引用其他工作表中的单元格。
我无法理解您的意思…@SiddharthRout我更改了措辞。我的意思是,现在如果我想把单元格和我的程序链接起来(从一行到一列,从一列到另一行),它就行了。但是,如果我想在两个工作表之间链接单元格,它将不起作用。
Sheet1!A2=表2!B2
你是说B2吗?如果是,则
Sheet1!A3=表2!C3
?或者你的意思是
Sheet1!A2=表2!A2
so
Sheet1!A3=表2!A3
@SiddharthRout我贴了一张照片。基本上,我需要将列的单元格中的(=“单元格”)链接到行,将行链接到列。我目前的程序只有在细胞在同一张纸上时才有效。谢谢你最近对我的帮助。基本上我想把一行链接到一列,但它们在不同的工作表上。您的代码可以工作,但它会随机链接。节目将:1。需要选择一个范围(一行)作为源2。需要选择一个单元格地址(在另一张表上)作为目标。3.程序开始用“=”单元格地址(来自另一张表-步骤1的来源)填充列上的单元格。现在,我可以在同一张工作表上的列和行或行和列的单元格之间建立链接。然后做链接,但我必须链接2次。这就是上面的代码所做的。我刚测试过。假设你在第二张纸上。运行上面的代码。当第一个输入框显示时,在表1中选择
A1:D1
。然后,当第二个输入框显示时,在表2中选择
A1
。您会注意到,公式在第2页的单元格
A1:A4
中得到更新。这不是你正在尝试的吗?是的,它有效-我做了一些导致问题的事情。多谢各位@西德哈特路