2017-07-18 111 views
0

我正在嘗試使用某種觸發器來允許此工作表的用戶獲取輸出值(通過我創建的算法)並將其轉錄到另一個工作表中。如何使用Excel 2010中的「觸發器」將值轉錄爲輸入的行名稱和列名稱?

它應該轉錄值的單元格將取自用戶的行名和列名。

在此示例中,用戶將分別插入X和Y作爲其行名和列名。一旦他們點擊觸發按鈕(不必是按鈕,我願意使用任何類型的觸發器,但我認爲必須有一個才能使其工作),「值(舍入)」中的值標記的細胞將被轉錄到相應的單元格:

這種細胞就是我要插入值。

這是自動化的目標。理想情況下,用戶只需要輸入行名和列名並按下一個按鈕(或任何其他觸發器),該按鈕會將值轉錄到另一張表中。

+0

看一看的[Worksheet.Change事件](https://msdn.microsoft。 COM/VBA/Excel的VBA /用品/工作表改變事件-Excel文件)。用戶不需要點擊任何東西來觸發它。 – jsheeran

回答

0

您需要在SHEET代碼(而不是模塊代碼)內使用事件宏。下面是如果小區改變如何讓兩個例子,或者雙擊發生,無論是在特定的細胞:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    If Not Intersect(Target, Range("E3")) Is Nothing Then 
    'Do something of Range("E3") has been double clicked 
    '(Basic Example) 
    'Range("G3").Value = "Range("B3").value 

    End If 


    End Sub 

    Private Sub Worksheet_Change(ByVal Target As Range) 
    'If a cell has chanced... 

    If Not Intersect(Target, Range("B3")) Is Nothing Then 
    'Do something 
    End If 

    End Sub 
0

添加一個按鈕,可以通過創建一個形狀(矩形或任何其他)來完成,正確的點擊它並選擇「分配宏」。在那裏你可以選擇一個應該在點擊該形狀後執行的宏。但有一點需要注意,宏需要成爲「公共分支」。

1

這是否必須是VBA?這可以用一個非常簡單的公式完成。

假設:

  • 輸入片被命名爲Input(改變所有引用的輸入是表的實際名稱)
  • 行名稱是在B1單元格(更換輸入$ B $ 1!成爲實際的行名稱條目單元格)
  • 列名稱在單元格B2中(更改Input!$ B $ 2爲實際列名稱條目單元格)
  • 值(圓角)單元格位於B4中(更改輸入!$ B $ 4爲實際值(圓角)單元格)

在我們Output片,把該式中的單元格B2,然後複製在上下:

=IF(AND(Input!$B$1=$A2,Input!$B$2=B$1),Input!$B$4,"") 
+0

我注意到你在「Input!$ B $ 1 =」後面加入了「= $ A2」,A2扮演什麼角色,我必須用什麼來代替? – Vedavyas

+0

列A包含您的行名稱,所以$ A2將會是您輸出表中的第一行名稱,這就是公式爲何在單元格B2中執行的原因。第1行包含列名的相同邏輯。 – tigeravatar

相關問題