2012-05-27 46 views
0

我已經問過並提供了我自己的答案,雖然它不好,但它的工作原理。 Previous Question如何創建另一個工作表的列和行之間的引用,反之亦然 - Excel VBA?

但是,現在我想鏈接另一個工作表的單元格。但是,我寫的程序無法從單張到另一張紙張的單元格之間進行參照。

Sheet1中,列A

Sheet2中,第1行

我想有

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

enter image description here

+1

'我想鏈接另一張紙上的單元格,它不能引用另一張紙上的單元格'我無法理解你的意思是... –

+0

@SiddharthRout我改變了我的措辭。我的意思是現在,如果我想鏈接單元格與我的程序(從行到列和列到行),它的工作原理。但是,如果我想鏈接兩張紙之間的單元格,它不起作用。 – NCC

+1

'Sheet1!A2 = Sheet2!B2'你是不是指B2?如果是,那麼'Sheet1!A3 = Sheet2!C3'?或者你真的意味着'Sheet1!A2 = Sheet2!A2' so'Sheet1!A3 = Sheet2!A3' –

回答

1

這就是你正在試圖任何chanc è?

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 
+0

最近感謝您的幫助。基本上我想將一行連接到一列,但他們在不同的工作表上。你的代碼工作,但它隨機鏈接。程序將:1.需要選擇一個範圍(這是一行)作爲源2.需要選擇一個單元地址(在另一個表)作爲目的地。 3.程序開始用「=」單元格地址(來自另一個表格 - 第1步的來源)填充列上的單元格。現在,我可以在同一張紙上的列和行或行和列的單元格之間建立鏈接。然後做鏈接,但我必須鏈接2次。 – NCC

+1

這就是上面的代碼所做的。我只是測試它。假設你在Sheet2中。運行上面的代碼。第一個輸入框顯示時,請在Sheet1中選擇「A1:D1」。然後在第二個輸入框顯示時,在Sheet2中選擇'A1'。您會注意到公式在單元格Sheet1中的A1:A4中得到更新。這不是你想要的嗎? –

+0

是的,它的工作原理 - 我做了一些導致問題的東西。非常感謝你。 @Siddharth Rout – NCC

0

您可以通過間接作用,像這樣在一個更簡單的方式做到這一點:

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

這將使用當前行加上偏移值排隊當前行與第一列,你想參考。在複製公式時,行號將增加,但將用於增加列參考。