2014-05-20 75 views
-3

我想在Excel中創建一個用戶窗體,可以用來選擇將用於傳遞到另一個宏的列。總體而言,我想要一個用戶表單,可以從工作表中選擇一列/列,然後通過表單中的確定鍵輸入此列,然後在宏中使用該列來比較列。我已經有了一個比較列的宏,但是我想要它,所以用戶可以從用戶中選擇他們想要的列,而不必進入VBA代碼。Excel VBA窗體來選擇另一個宏的列

是否有用戶形式這樣做?如果沒有,還有沒有其他的方式呢?

任何幫助將是偉大的!由於

這是我目前使用我的電子表格中的列比較代碼:

Sub IdentifyMatches() 

For X = 2 To 27 
    If ((Cells((X), 2).Value <> Cells((X), 8).Value)) Then 
     Cells((X), 14).Value = "ADDRESS MISMATCH" 
    Else 
     Cells((X), 14).Value = "Address Match" 
    End If 

    If ((Cells((X), 3).Value <> Cells((X), 9).Value)) Then 
     Cells((X), 15).Value = "POSTCODE MISMATCH" 
    Else 
     Cells((X), 15).Value = "Postcode Match" 
    End If 

    If ((Cells((X), 4).Value <> Cells((X), 10).Value)) Then 
     Cells((X), 16).Value = "COVER MISMATCH" 
    Else 
     Cells((X), 16).Value = "Cover Match" 
    End If 

    If ((Cells((X), 5).Value <> Cells((X), 11).Value)) Then 
     Cells((X), 17).Value = "NAME MISMATCH" 
    Else 
     Cells((X), 17).Value = "Name Match" 
    End If 

    If ((Cells((X), 6).Value <> Cells((X), 12).Value)) Then 
     Cells((X), 18).Value = "AGE MISMATCH" 
    Else 
     Cells((X), 18).Value = "Age Match" 
    End If 
Next X 

End Sub 
+1

你可以使用一個輸入框,用戶輸入的範圍內的細節和宏內使用該信息 – Gareth

+0

是的,這是最好的選擇,通過的建議@Gareth以列名作爲輸入示例,我是s uggesting採取inputStr =「A」,這個A將通過輸入框來。然後你可以通過整數值來迭代它。即A&i,其中i =整數。那麼它將變成A1,A2等等。希望這可以幫助你。 – Brain

回答

0

我會使用類似,它允許用戶輸入列範圍如下(假設你想設置範圍整列(S):

Dim strRng As String 
Dim rng As Range 

'Prompt the user for a column range 
strRng = InputBox("Please enter the columns", , "e.g. A:B") 

'Set the range to the columns entered 
Set rng = ActiveSheet.Range(strRng) 
+0

嗨,感謝您的幫助。我不認爲這是我正在尋找的正確的事情。我有兩張工作簿(並且想比較這些列上的某些列)。我已經有一個並排複製到兩張表的宏,但我現在想要選擇我想要比較的列,但我不希望用戶必須進入VBA代碼才能執行此操作。我被告知它可以完成,我只需要一點幫助就可以實現這一點。非常感謝您的時間/精力 - 非常感謝 – user3655692

+0

用戶不需要修改VBA代碼,同時使用上面的'inputbox'處理列字母。兩張紙上的色譜柱是否相同? – Gareth

+0

是的,這兩列中的列是相同的,只是數據不同。我只是將代碼複製到輸入框中?我從來沒有聽說過輸入框,對不起。再次感謝 – user3655692