2015-02-06 67 views
0

此刻我有一個代碼將同一工作簿中不同工作表的範圍複製到激活宏的表單中。基於活動單元格值插入範圍

這是我需要幫助:

我想運行,只有當activecell在C列具有一定的價值宏。該值可在範圍列表中找到A1:A10

活動單元必須位於列C中的部分,我已管理。現在是另一部分。這是我到目前爲止的代碼。

Application.ScreenUpdating = False 

If ActiveCell.Column <> 3 Then 
    MsgBox "Select a cell in column C", vbExclamation 

Else 
    With Sheets("Info").Range("A25:J27").Copy 
     Sheets("Main").Activate 
     ActiveCell.End(xlDown).Offset(2).EntireRow.Insert shift:=xlDown 
    End With 
End If 

Application.ScreenUpdating = True 
Application.CutCopyMode = False 

'puts value in cell to trigger change event macro 
Range("A1").Value = 1` 

例如,我的列表包含汽車,房子,狗的話。所以當我的活動單元在列C中,並且有三個值中的一個時,我點擊CommandButton,我想讓宏運行。如果活動單元不在列C中,或者不是這三個值中的一個,則出現MsgBox。

我真的很感謝這最後一部分的幫助,因爲我似乎無法弄清楚。感謝您的時間。

回答

0

與函數即的幫助,也許包含:

If ActiveCell.Column = 3 And Contains(ActiveCell.Value, [d1:d3]) Then 
'your code 
End If 


    Public Function Contains(val, searchrange As Range) 
    Dim item As Range 
    For Each item In searchrange 
    If val = item.Value Then Contains = True: Exit Function 
    Next 
    Contains = False 
    End Function 
+0

對不起,我遲到respons,我沒有在我手上的Excel工作簿本週末。我已經試過你的代碼,它很好用,謝謝。是否也可以將搜索範圍更改爲另一個工作表?示例:[D1:D3]可以說:工作表(「sheet1」)。範圍(「D1:D3」) – 2015-02-09 11:46:52

+0

當然是...... – anefeletos 2015-02-09 22:22:26

+0

如何管理?因爲工作表(「sheet1」)。range(「D1:D3」)給了我一個錯誤 – 2015-02-10 16:09:09

相關問題