簡體   English   中英

Excel VBA 從一個單元格中提取單元格地址,從另一個單元格中提取一個值,然后輸入到另一個單元格中

[英]Excel VBA to pull a cell address from one cell, pull a value from another, and input into yet another cell

時間海報。 我正在運行 Excel 2010 並且我已經做了一些 VBA 的東西,但我仍然是一個新手,而且我真的一直在用這個輪子轉動我的輪子。 所以...

我的工作表有這些單元格——這是它們的作用(這是假設的):

  • A1為空白; 稍后會輸入一些內容。
  • B1 中會有一個單元格地址——假設地址是 B3。 這個地址將由excel公式根據我放入A1的內容(我能夠做的那部分)生成。
  • C1 會有一些東西——讓我們說“你好”這個詞。

這是我需要一個宏來做的事情,只要我把它放進 A1 並點擊返回:

  1. 從 B1 獲取單元格地址
  2. 從 C1 中獲取單詞“hello”
  3. 把“你好”這個詞放進B3
  4. 轉到 A1 並擦除其內容,但保持單元格處於活動狀態,然后結束

在此先感謝您提供的任何幫助!

您需要將它放在您希望它處理的特定工作表的代碼中。 當我測試它時,它運行得非常快,你真的看不到 A1 包含任何東西。 如果你想看的話,我想你可以在那里等一下。 但是要將此代碼放在左側樹上的工作表中(以防萬一您不知道),您將看到 VBAProject("workbook name") > Microsoft Excel Objects > Sheet 1 ("worksheet name")

Private Sub Worksheet_Change(ByVal Target As Range)

Dim ws As Worksheet
Dim keyCell As Range
Dim adr As String, str As String

Set ws = ActiveSheet
Set keyCell = ws.Range("A1")

If Not Application.Intersect(keyCell, Target) Is Nothing Then
    adr = ws.Range("B1")
    str = ws.Range("C1")

    ws.Range(adr) = str
    With ws.Range("A1")
        .ClearContents
        .Select
    End With
    End
End If

End Sub

希望這可以幫助!

好的,這就是我最終想出的,它奏效了......

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        c = Range("b1").Value
        i = Range("c1").Value
            If Target.Value = "" Then
                Exit Sub
            Else
                Range(c) = i
                Target.Select
                Selection.ClearContents
            End If
    End If
End Sub

我假設(還沒有這樣做)我可以將變量 c 和 i 嵌入到“else”下面的那一行中,但現在,我猜這更容易思考。 我不確定為什么這有效而其他人沒有。 出於某種原因,我的宏似乎...間歇性的。

無論如何,再次感謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM