簡體   English   中英

根據兩個值更新單元格以查找行和列以及相應的工作表

[英]Update cell based on two values for finding the row and column and corresponding worksheet

關於如何使用 VBA 執行以下操作的任何想法:

'Input a Value INTO Cell = [P4]'
'in Worksheet Titled = [P3] '
'WHERE ROW = [M4] AND Column = [N4]'

基本上,當我單擊一個按鈕時,我希望 [Cell:P4] 中的公式基於標題為 [Cell:P3] 的工作表填充到另一個工作表中,並且僅在兩行都有一個的行和列中[Cell:M4] 中所述的數字,並且該列具有 [Cell:N4] 中所述的數字。

所以首先你需要知道如何將你的宏連接到一個按鈕。 請參閱官方文檔或來自 excelcampus.com 的文檔。 基本上,創建一個矩形或您希望按鈕具有的任何形式,然后右鍵單擊該形式並單擊“分配宏...”。 還有其他更復雜的方法,但這應該足夠了。

所以現在關於宏本身,我會給你一些提示。 您想要將公式復制到另一個單元格中。 VBA中的基本做法:

Sub copyFormula()
    Cells(1, 3).Formula = Cells(1, 2).Formula 'this will copy the formula in B1 to C1
End Sub

但我們想讓這段代碼更安全一點。 讓我們編寫代碼來標識所涉及的工作簿和工作表。

Option Explicit

Sub copyFormula()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws_source As Worksheet
Dim ws_target As Worksheet

Set ws_source = wb.Worksheets("Sheet1") 'replace Sheet1 with name of your sheet
Set ws_target = wb.Worksheets("Sheet2") 'replace Sheet2 with name of your sheet

    ws_target.Cells(1, 3).Formula = ws_source.Cells(1, 2).Formula
End Sub

此時您需要擔心公式中的引用(我現在說的是 excel 公式,而不是 VBA 代碼)。 提示:嘗試使用 $ 符號來鎖定單元格引用(此方法不是直接關注的問題)並引用您指向的單元格的工作表,如下所示:“=Sheet2!A1”

好的,現在讓我們再修改一下代碼。 您想要處理具有變量名稱的工作表,即在單元格 P3 中寫入的名稱(我假設為源工作表)。 我們做得到。 我們所要做的就是讀取 P3 的值,然后用所述變量替換目標工作表定義中的 static “Sheet2”。

Dim targetName As String
targetName = ws_source.Cells(3, "P").Value    
Set ws_target = wb.Worksheets(targetName)

嘗試在單元格 P3 中寫入一個無效的名稱,您就會明白為什么這是一件危險的事情。 我會留給您采取預防措施,確保 P3 中輸入的值不會破壞您的代碼:)

我真的不明白你最后一部分談論行和列的意思。 向我們展示您的嘗試,然后我們可以幫助改進您的代碼。

這是你的想法嗎? function 必須安裝在您有命令按鈕的選項卡的代碼表中。

Private Sub CommandButton1_Click()
    ' 027

    On Error Resume Next
    With Worksheets(Cells(3, "P").Value)
        .Cells(CLng(Cells(4, "M").Value), CLng(Cells(4, "N").Value)) _
              .Formula = Cells(4, "P").Formula
    End With
    If Err Then
        MsgBox "There is an error in the specs." & vbCr & _
               "Check the tab's name.", vbInformation, _
               "Execution suspended"
        Cells(3, "P").Select
    End If
End Sub

暫無
暫無

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

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