2017-01-31 6 views
-1

Excelシートの最初の使用可能な行に情報を伝播するユーザーフォームを作成しようとしています。範囲を正しく取得するのに苦労しています。フォームは現在、「下付き文字が範囲外です」を示しています。 'ランタイムエラー9'。 if文にも問題があるようですが、オンラインの標準的なアドバイスに従えば、問題の解決には役立たなかったようです。VBAランタイムエラー9 - 下付き文字範囲外

誰かが私が間違っていると思っている人は(私はこれに非常に新しいです)、それは素晴らしいでしょう。

Private Sub UserForm_Initialize() 
BusinessAreaBox.List = Array("option one", "option two") 
End Sub 

Private Sub CommandButton1_Click() 
Dim RowCount As Long 
RowCount = Sheets("Sheet1").Range.Sheets("Sheet1").Cells(2, "A") 
With ThisWorkbook.Sheets("Sheet1").Range("A2") 
.Offset(RowCount, 0).Value = BusinessArea1.Value 
.Offset(RowCount, 1).Value = BusinessContact1.Value 
.Offset(RowCount, 2).Value = LPSContact1.Value 
.Offset(RowCount, 4).Value = ProjectedFTE1.Value 
.Offset(RowCount, 5).Value = DateOfMostRecentMeeting1.Value 
.Offset(RowCount, 6).Value = FTEComment1.Value 
.Offset(RowCount, 7).Value = ProposedMove1.Value 
.Offset(RowCount, 8).Value = DeskUtilisation1.Value 
.Offset(RowCount, 9).Value = OtherComment1.Value 
.Offset(RowCount, 10).Value = Actions1.Value 
If RegularMeeting1.Value = True Then 
.Offset(RowCount, 3).Value = "Yes" 
Else 
.Offset(RowCount, 3).Value = "No" 
End If 
RegularMeeting1.Value = True Or False 
End With 
End Sub 

Private Sub CommandButton2_Click() 
    Unload Me 
End Sub 
+2

: '行カウント=シート( "シート1")Range.Sheets( "シート1")細胞(2、 "A")'。?私はこれが黄色であると推測していますか? – R3uK

+0

これがエラーの原因です。私はそれが最初の情報セットを "シート1"、行2に、そしてそのポイントから最初に利用可能なラインに移入させようとしています。私はその例をオンラインの例から取ったと認めなければなりませんが、その行が何を読むべきか分かりません。どんな考えも高く評価されます。 – JessicaLucy

+0

[ランタイムエラー '9':下付き文字が範囲外です](http://stackoverflow.com/documentation/vba/8917/vba-run-time-errors/27748/run-time-error-9-subscript-範囲外#t = 201701311609360342424) –

答えて

0

私はこの

Private Sub CommandButton1_Click() 
    With ThisWorkbook.Sheets("Sheet1") 
     .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 11).Value = Array(BusinessArea1.Value, _ 
                       BusinessContact1.Value, _ 
                       LPSContact1.Value, _ 
                       IIf(RegularMeeting1.Value, "Yes", "No"), _ 
                       ProjectedFTE1.Value, _ 
                       DateOfMostRecentMeeting1.Value, _ 
                       FTEComment1.Value, _ 
                       ProposedMove1.Value, _ 
                       DeskUtilisation1.Value, _ 
                       OtherComment1.Value, _ 
                       Actions1.Value) 

    End With 
    RegularMeeting1.Value = True Or False '<--| what is this supposed to do? 
End Sub 
+0

優れたコーディングサー! –

+0

@ JohnMuggins、ありがとう。しかし、JessicaLucyのフィードバックを待つことにしましょう – user3598756

+0

残念ながら、これで運がありません。前と同じように、範囲が問題になりました。問題の原因となる可能性のある問題があるかどうかはわかりますが、何の助けもありません。 – JessicaLucy

0

を細胞にこのように書いてみた後、あなたがかもしれ思います。最初にシートとセルをアクティブにする必要があります。あなたはこの行をどうしようとしている何

Dim myArr As Variant 

myArr = Array(BusinessArea1.Value, _ 
       LPSContact1.Value, _ 
       ProjectedFTE1.Value, _ 
       DateOfMostRecentMeeting1.Value, _ 
       FTEComment1.Value, _ 
       ProposedMove1.Value, _ 
       DeskUtilisation1.Value, _ 
       OtherComment1.Value, _ 
       Actions1.Value) 

sheet1.activate 
sheet1.range("A2").activate 
for I = 0 to ubound(myArr) 
    activecell.value = myArr(I) 
    activecell.Offset(1,0).activate 
Next I 
+3

あなたは、*。*が*良いアイデアに近いところにいなければ、 '.Activate'を使って、' ActiveCell'(そして 'Selection')に頼っているというアイデアが拡散するのを止めることができます。 –

+3

私は2番目のMat's Mugを使っています - ** [Excel VBAマクロでの選択の使用を避ける方法](http://stackoverflow.com/a/10717999/2687063)**を参照してください。 –

関連する問題