2017-07-27 13 views
0

C5から始まりP13で終わる範囲を選択する必要があります。VBAを使用してスタートボックスとエンドセルから入力ボックスを使用して範囲を選択する方法

私はコーディングをいくつか行いましたが、問題があります。私はそれを理解できません。それは合併されていません。

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 

関連する問題