2017-07-27 65 views
0

我需要選擇從例如C5開始並在P13結束的範圍。如何使用輸入框從使用VBA的開始單元格和結束單元格中選擇範圍excel

我做了一些編碼,但它有什麼問題,我找不出來。它沒有合併進去。有什麼建議嗎?

Sub Select_Range() 
Dim lastrow As Long, LastCol As Long 
Dim TheRow As Long, TheCol As Long 
Dim StartCell As String 
Dim EndCell As String 
Dim startrow As Long, StartCol As Long 
Dim TheRow2 As Long, TheCol2 As Long 

StartCol = ActiveSheet.Cells(1, Columns.Count).End(xlToRight).Column 
startrow = Cells(Rows.Count, StartCol).End(xlDown).Row 
StartCell = InputBox("Enter Start cell") 
TheRow2 = Range(StartCell).Row 
TheCol2 = Range(StartCell).Column 
ActiveSheet.Range(Cells(TheRow2, TheCol2), Cells(startrow, StartCol)).Select 

LastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column 
lastrow = Cells(Rows.Count, LastCol).End(xlUp).Row 
EndCell = InputBox("Enter End cell") 
TheRow = Range(EndCell).Row 
TheCol = Range(EndCell).Column 

ActiveSheet.Range(Cells(TheRow2, TheCol2), Cells(startrow, StartCol)).Select 
ActiveSheet.Range(Cells(TheRow, TheCol), Cells(lastrow, LastCol)).Select 

End Sub 

當我選擇了我想要的範圍後,我需要將公式插入選定範圍。我如何操作公式成爲選定的範圍? 這是我的公式:

ActiveCell.range.Formula = "{=MAX(($C$3:$S$20=D27)*COLUMN($C$3:$S$20))-COLUMN($C$3:$S$20)+1}" 
+0

有很多事情在那裏,我擔心可能無法正常工作。你的數據*不是在'A1'開始說'F1'嗎?因爲如你所說,你的'StartCol'和'EndCol'可能是一樣的。你的數據是什麼樣的?另外,你應該[避免使用'.Select' /'.Activate'](https://stackoverflow.com/questions/10714251)。 – BruceWayne

+0

不是。數據並不是專門在同一個單元格中開始和結束,這就是爲什麼我創建了一個輸入框來執行此操作的原因。當我輸入開始單元格時,它確實從我輸入的單元格開始,但它不會在我想要的單元格結束。 – prestan

+0

這不會引發任何錯誤嗎? – BruceWayne

回答

0

這可以幫助你,

Sub PromptRangeSelection() 
    Dim rng As Range 
    Set rng = Application.InputBox("Select a range", "Title Here", Type:=8) 
    MsgBox "The Range is " & rng.Address 
End Sub 

您可以直接通過選擇和拖動鼠標,或鍵入在輸入框中輸入範圍選擇範圍。

相關問題