Excelエラー9インデックスが有効範囲にありません

このQ&Aのポイント
  • Excel_VBA_ver2000_エラー9_インデックスが有効範囲にありませんが出てしまいます。選択文書数を少なくするとエラーはでません。
  • Excelエラー9が出る原因は、文書数が多い場合に発生することがあります。
  • エラー9が出た場合、選択文書数を減らすことで解決する可能性があります。
回答を見る
  • ベストアンサー

Excel_エラー9_インデックスが有効範囲に・

Excel_VBA_ver2000_エラー9_インデックスが有効範囲にありませんが出てしまいます。 何度かお世話になっております。(前回http://okwave.jp/qa/q6283060.html)コードが長いため所々省略しています。 下記←部分にエラ-9が出てしまいます。選択文書数を少なくするとエラーはでません。何故でしょうか?文書は現在300ぐらいです。(今後増えます。)テストで20程選択し,実行すると何もエラーはでませんでした。どうぞ宜しくお願い致します。 Sub try() Dim BookUrl, BookName, n, hLink, xName, Holdir, X, chk, returnValue, BookUrl2, n2 As String Dim Rng, sel As Range Dim kk(1 To 8) As String Dim H As Hyperlink Dim v, myR2, myR3, SAN, Result, nn, SAN2 As Variant ~省略~ 'とりあえずAutoFilter.RangeのC:D列をセット Set Rng = Intersect(.AutoFilter.Range.EntireRow, .Columns("C:D")) BookUrl = .Range("D10").Value n = "_" & .Range("C3").Value ~省略~ SAN = BookUrl & "総合管理" & n & ".xls " If Dir(SAN) <> "" Then MsgBox "既にご指定場所に,同名ファイルがあるようです。" & vbCrLf & "ご確認の上,フォルダ,ファイルを削除してから再操作をして下さい。" & vbCrLf & "動作を抜けます。" Exit Sub End If ~省略~’ここに7.資料\1.管理a ~8管理hを作成するコードを入れています 'rngの可視セル(抽出セル)をセット Set Rng = Intersect(Rng, Rng.Offset(1), Rng.SpecialCells(xlCellTypeVisible)) '抽出なければ抜ける If Rng Is Nothing Then Exit Sub UserForm1.Show vbModeless UserForm1.Repaint '■※1)画面更新停止 Application.ScreenUpdating = False kk(1) = "1.管理a" kk(2) = "2.管理b" kk(3) = "3.管理c" kk(4) = "4.管理d" kk(5) = "5.管理e" kk(6) = "6.管理f" kk(7) = "7.管理g" kk(8) = "8.管理h" With ThisWorkbook.Sheets("TEST") Set Rng = .Columns("C:D") Set Rng = Rng.SpecialCells(xlCellTypeVisible) 'rng.HyperlinksをLoop For Each H In Rng.Hyperlinks hLink = H.Address chk = LCase(Mid$(hLink, InStrRev(hLink, "."))) Select Case chk Case ".xls", ".xlsx", ".doc", ".docx" xName = Mid$(hLink, InStrRev(hLink, "/") + 1) X = .Range("F" & H.Range.Row).Value ※ H.Range.Row=192 関係ありますか? Holdir = "7.資料\" & kk(X) & "\" ← エラー9_インデックスが有効範囲にありません。 BookName = BookUrl & Holdir & Replace$( _ xName, chk, n & chk, , , vbTextCompare) 'URLDownloadToFile API をコールする returnValue = URLDownloadToFile(0, hLink, BookName, 0, 0) H.Address = BookName End Select Next End With Unload UserForm1 '■※1)画面更新再開 ~省略~

質問者が選んだベストアンサー

  • ベストアンサー
  • pcb39431
  • ベストアンサー率84% (16/19)
回答No.1

Dim kk(1 To 8) As String X = .Range("F" & H.Range.Row).Value Holdir = "7.資料\" & kk(X) & "\" Xに、0または9以上の値が入っているためではないですか?

shiku_nan
質問者

お礼

こんにちは。 ご回答を有難うございました。 Xに格納されるF列の数字をチェックしましたが, 0または9以上の値はありませんでした。 ただ,指定しているF列ですが,空白セルはあります。 関係あるのでしょうか? どうぞ宜しくお願いします。

shiku_nan
質問者

補足

選択した行の参照先が空白なことが原因でした。 ご回答がヒントになり解決しました。 有難うございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こんな長いコードを質問に書いて、読者回答者に読ませるなど、工夫が足りない。他人に頼りすぎ。 そもそもエラー原因の特定は、このコーナーの質問や回答には適さない。 実行したり、色々ながめたり、試行をやってみることも、現実データも使えないのだから。 自分でエラー原因を追究すること。 Googleででも「VBA エラー9 インデックスが有効範囲にありません」ででも照会すれば、文字通りだけのの原因解説は出る。 http://pasofaq.jp/office/excel/error9.htm シートの名前やINDEX番号を使っているコードの前にシート名やインデックス番号をMsgboxで表示し、エラーの出る直前で指定している、シート名やインデックス番号が怪しいとおもう。 モデル的とは 下記コード例の、配列の上限要素を超える要素を指定した場合」とかいったものだ こんなこともやって、エラー原因を抽象化し(この場合は類型といったものはなさそうだが)、質問ないしその他のケースでモデル的にやってみて、そのエラーが起こるか確認すると良い。 INDEXはオブジェクトのコレクションを特定するものだと思うので、シート以外のコレクション(例ブックに)もチェックを広げる必要もあるかも知れない。 ーー また Sub test01() x = Array("x", "y") MsgBox x(1) MsgBox x(2)  '<--エラー個所 End Sub のような配列(的)なところでもこのエラーは出るようだ。 これを類型で言うと、 「配列の上限要素を超える要素を指定した場合」は質問と同じエラーになる(これが本質問の原因だと言ってないが)。

shiku_nan
質問者

お礼

こんにちは。 ご回答有難うございました。 そうですよね。こんなに長いコードを記載するのは,×ですよね。 全体像をご理解いただきたくて記載してしまいました。気をつけます。 >Googleででも「VBA エラー9 インデックスが有効範囲にありません」ででも照会すれば、文字通りだけのの原因解説は出る。 >http://pasofaq.jp/office/excel/error9.htm Google検索して上記urlの内容も読みました。その他も色々。ヘルプも読み,UBound,LBound関数についての例も見て見ましたが,初心者のため?だったのです。配列は難しいです。 記載コードで選択文書数を少なくするとエラーがでないのに,殆ど全文書の選択をする(192?)とエラーがでるのがわからないことでした。 シートもTESTのみしか使用してないので。 >「配列の上限要素を超える要素を指定した場合」は質問と同じエラーになる(これが本質問の原因だと言ってないが)。 この辺りのところが関係しているのでょうか?配列の上限について調べてみます。 有難うございました。

関連するQ&A

  • Excel VBA_2000ハイパーリンク付文書を選択後,各フォルダへ

    Excel VBA_2000ハイパーリンク付文書を選択後,各フォルダへ分別振分保存について (http://okwave.jp/qa/q6003799.html) (http://okwave.jp/qa/q6058720.html)で大変お世話になった者です。Sheets("TEST")E列に1~8の数字あります。これを判断して実行時に,C・D列のハイパーリンク付文書をE列に1とあれば1.管理aフォルダに保存,以下,2の時は2.管理bへ保存としたいのです。どのように変更すれば良いでしょうか?どうぞ宜しくお願い致します。 Sub try() Dim BookUrl As String Dim BookName As String Dim n As String Dim Rng As Range Dim H As Hyperlink Dim hLink As String Dim xName As String Dim Holdir As String Dim kk() As String Dim i As Integer Dim returnValue As String ActiveSheet.Unprotect With Sheets("TEST") If Not .AutoFilterMode Then Exit Sub If Not .FilterMode Then MsgBox "B25のオートフィルタボタンからレ点を選択してください。" Exit Sub End If Set Rng = Intersect(.AutoFilter.Range.EntireRow, .Columns("C:D")) BookUrl = .Range("D10").Value n = "_" & .Range("C3").Value End With With Sheets("TEST") ActiveSheet.Shapes("Button 36").Select On Error Resume Next MkDir Range("D10") & "7.資料" MkDir Range("D10") & "7.資料" & "\" & "1.管理a" MkDir Range("D10") & "7.資料" & "\" & "2.管理b " MkDir Range("D10") & "7.資料" & "\" & "3.管理c" MkDir Range("D10") & "7.資料" & "\" & "4.管理d" MkDir Range("D10") & "7.資料" & "\" & "5.管理e" MkDir Range("D10") & "7.資料" & "\" & "6.管理f" MkDir Range("D10") & "7.資料" & "\" & "7.管理g" MkDir Range("D10") & "7.資料" & "\" & "8.管理h" On Error GoTo 0 End With Set Rng = Intersect(Rng, Rng.Offset(1), Rng.SpecialCells(xlCellTypeVisible)) If Rng Is Nothing Then Exit Sub UserForm1.Show vbModeless UserForm1.Repaint '■※1)画面更新停止 Application.ScreenUpdating = False 'rng.HyperlinksをLoop For Each H In Rng.Hyperlinks hLink = H.Address If UCase(Right$(hLink, 3)) = "XLS" Then xName = Mid$(hLink, InStrRev(hLink, "/") + 1) ReDim kk(8) kk(0) = "1.管理a" kk(1) = "2.管理b" kk(2) = "3.管理c" kk(3) = "4.管理d" kk(4) = "5.管理e" kk(5) = "6.管理f" kk(6) = "7.管理g" kk(7) = "8.管理h" For i = 0 To 7 Holdir = "7.資料" & "\" & kk(i) & "\" BookName = BookUrl & Holdir & Replace$( _ xName, ".xls", n & ".xls", , , vbTextCompare) returnValue = URLDownloadToFile(0,hLink,BookName,0,0) H.Address = BookName Next i End If 以下,省略

  • エクセル VBA 表示範囲の簡素化

    よろしくお願いします。 下記構文の簡素化ができないでしょうか。 CommandButtonが30個ほどあります。 ーーーーーーーーーー Private Sub CommandButton1_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("A1:D7") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub ーーーーーーーーーー Private Sub CommandButton2_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("A8:B21") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub ーーーーーーーーーー Private Sub CommandButton3_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("C8:D21") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub

  • エクセルでの複数VBAの作業

     こんばんは。  お世話になります。  以下のコードをMicrosoft Visual Basicの「標準モジュール画面」にて記述し、作動させてみたのですが、  2つ目のSub lll()のみしか反映されないようで、”S”行のみしか値がえられませんでした。  何が問題なのか、初心者のわたくしには、わかりません。  お手数ですが、原因等をお教えいただければ、幸いでございます。 Sub hhh() Dim n As Long Dim rng As Range n = 2000 ReDim hh(1 To n, 1 To 1) Set rng = Range("C2:C31") For i = 1 To n hh(i, 1) = WorksheetFunction.Max(rng) Set rng = rng.Offset(30) Next i Range("R2").Resize(n) = hh End Sub Sub lll() Dim n As Long Dim rng As Range n = 2000 ReDim ll(1 To n, 1 To 1) Set rng = Range("D2:D31") For i = 1 To n ll(i, 1) = WorksheetFunction.Min(rng) Set rng = rng.Offset(30) Next i Range("S2").Resize(n) = ll End Sub

  • 実行時エラー9:インデックスが有効範囲にありません」ができてた。調べた

    実行時エラー9:インデックスが有効範囲にありません」ができてた。調べたのですが、原因は分からない、皆さん、助けてください。 以下はあるフォルダーを選定して、セルの値と一致するファイルを探し出して、シートAの中のデータを取り上げて、コピーしたいです。けど、エラーが出てきた。皆さん。よろしくお願いします。 Sub test() Dim forName, bookName As String Dim x, y, l As Long Const cnsDIR = "\*.xls" Dim bFound As Boolean Dim myBook, actBook As Workbook Dim mySheet, actSheet As Worksheet With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then myPath = .SelectedItems(1) End If End With forName = Dir(myPath, vbDirectory) If Dir(myPath, vbDirectory) = "" Then MsgBox "It's nothing!", vbExclamation Exit Sub End If bFound = False For x = 2 To 7 Step 1 bookName = Dir(myPath & cnsDIR, vbNormal) Do While bookName <> "" l = InStrRev(bookName, ".xls") If Mid(bookName, l - 4, 4) = Format(Cells(4, x), "0000") Then bFound = True Exit Do 'hang/lie Else bookName = Dir() End If Loop If bFound = False Then Rtn = MsgBox("This is no found. Do you want to continue?", vbYesNo, "選択") If Rtn = vbNo Then Exit For End If Windows(bookName).Activate actSheet = ActiveWorkbook.Sheets For Each actSheet In Worksheets If ActiveSheet.Name = "A" Then Application.Union(Range("C55:F55"), Range("H55:I55")).Copy ThisWorkbook.Sheets(4).Range("B5").PasteSpecial Paste:=xlValues, Transpose:=True End If Next Next x End Sub

  • VBA 範囲選択時エラー

    Private Sub Worksheet_SelectionChangeのVBAでA列B列C列でワンクリックで文字が入力できるように設定致しました。 その後、A列からC列を範囲選択してDeleteするとデバック 「実行時エラー  型が一致しません」と出てしまいます。業務上、そのセルのデータは一気に消したいので困っております。どなたか分かる方よろしくお願い致します。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rng As Range, rng_1 As Range, rng_2 As Range Application.EnableEvents = False Set rng_1 = Range("H17:H100") Set rng_2 = Range("I17:I100") Set rng_3 = Range("J17:J100") Set rng_4 = Range("K17:K100") Application.EnableEvents = True Set rng = Intersect(Target, rng_1) If Not rng Is Nothing Then Cancel = True If Target.Value = "" Then Target.Value = "(1)" Else Target.Value = "(1)" End If Else Set rng = Intersect(Target, rng_2) If Not rng Is Nothing Then Cancel = True If Target.Value = "(2)" Then Target.Value = Empty Else Target.Value = "(2)" End If Else Set rng = Intersect(Target, rng_3) If Not rng Is Nothing Then Cancel = True If Target.Value = "(3)" Then Target.Value = Empty Else Target.Value = "(3)" End If Else Set rng = Intersect(Target, rng_4) If Not rng Is Nothing Then Cancel = True If Target.Value = "(4)" Then Target.Value = Empty Else Target.Value = "(4)" End If End If End If End If End If End Sub

  • 実行時エラー9 インデックスが有効範囲にありません!

    プログラムを編集するところ、実行時エラー9:インデックスが有効範囲にありません」ができてた。調べたのですが、原因は分からない、皆さん、助けてください。 以下はあるフォルダーを選定して、セルの値と一致するファイルを探し出して、シートAの中のデータを取り上げて、コピーしないです。けど、エラーが出てきた。皆さん。よろしくお願いします。 Sub test() Dim forName, bookName As String Dim x, y, l As Long Const cnsDIR = "\*.xls" Dim bFound As Boolean Dim myBook, actBook As Workbook Dim mySheet, actSheet As Worksheet With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then myPath = .SelectedItems(1) End If End With forName = Dir(myPath, vbDirectory) If Dir(myPath, vbDirectory) = "" Then MsgBox "It's nothing!", vbExclamation Exit Sub End If bFound = False For x = 2 To 7 Step 1 bookName = Dir(myPath & cnsDIR, vbNormal) Do While bookName <> "" l = InStrRev(bookName, ".xls") If Mid(bookName, l - 4, 4) = Format(Cells(4, x), "0000") Then bFound = True Exit Do 'hang/lie Else bookName = Dir() End If Loop If bFound = False Then Rtn = MsgBox("This is no found. Do you want to continue?", vbYesNo, "選択") If Rtn = vbNo Then Exit For End If Windows(bookName).Activate actSheet = ActiveWorkbook.Sheets For Each actSheet In Worksheets If ActiveSheet.Name = "A" Then Application.Union(Range("C55:F55"), Range("H55:I55")).Copy ThisWorkbook.Sheets(4).Range("B5").PasteSpecial Paste:=xlValues, Transpose:=True End If Next Next x End Sub

  • 行選択した文書のみダウンロード_チェックボックス

    いつも大変お世話になっております。 以前http://okwave.jp/qa/q6003799.html、こちらでお世話になり、m(_ _)m 当時完成させたものに対して「いくつかの」仕様変更を求められました。 ここ数カ月程、ずっと挑戦しては悩んでおります。 期限が迫ってきましたので今回投稿しました。 「過去に何かを作成したことはなく、現在のものをいきなり実践で作成という経緯」なので、 一からcodeを入力する技量は全くありません。 以前ご回答いただいたものを「いじり」ながら変更を行っています。 Windows7 Excel2010になります。 別カテゴリで2週間以上回答がつきませんでした。再投稿になります。 どうぞ宜しくお願い致します。 <以前は> 一括文書のダウンロード (1)B列に「レ」を入力 (2)オートフィルタを実施 (3)(1)、(2)で選んだ行のC、D列のリンク文書のみ指定場所に一括ダウンロード (4)その際に複数フォルダ作成を行い、その中へダウンロードする各ファイルを指定したファイル名へ変更してから保存 (5)ダウンロードした場所のリンク先にC、D列のハイパーリンク先を変更 <今回は> グループごとに文書 ダウンロード   例)第一グループにある資料=「ファイルの保存1」ボタンを実行 (1)B列にチェックボックスを作成 (2)(1)でチェックボックスがONとなっているC、D列のリンク文書のみ指定場所にダウンロード (3)指定したフォルダ名でフォルダを作成し、その中へ(2)を指定したファイル名へ変更し保存 (4)ダウンロードした場所のリンク先にC、D列のハイパーリンク先を変更 (5)第二グループからはAB列とAC列の数字を比較して、違う場合はAC列の数字のフォルダ(グループ)内へ戻り検索、該当文書のショートカットキ-を作成してAB列の数字のフォルダ(グループ)の中へ保存 <現在の状態> <今回は>の(1)(3)(4)ができていて,(2)ができていません。(指定フォルダ名の作成はできていていますが,指定した範囲の全ての文書が保存されてしまいます。)チェックボックスがONとなっている行のC,D列のリンク文書のみ指定場所にダウンロードを行いたいのです。(5)の動作についてもかなり苦戦しているため切羽詰っている状態です。アドバイスいただけると大変助かります。 ※チェックボックスはフォームコントロールで作成したチェックボックスです。  フォーム上には作成しておらずシート上に作成しています。  コントロールの書式設定にリンクするセルにはチェックボックスのすぐ下のセル「例)$34$」などとして,TRUE/FALSEを表示させています。  このTRUEの数を拾えるところまではできましたが,下記「ku」で拾えたTEUEの数をどう生かせばいいのかわかりません。 Sub try2() CreateObject("WScript.Shell").CurrentDirectory = ThisWorkbook.Path Dim BookName, BookName2, n, f, hLink, xName, xName2,NNN, Holdir, X, chk, returnValue As String Dim Rng As Range Dim H As Hyperlink Dim hd1 As String Dim FSO As Object Dim ku As Long ActiveSheet.Unprotect With ThisWorkbook.Sheets("参考資料") ActiveSheet.Shapes("Button5").Select ActiveSheet.Range("$B$34:$B$40").AutoFilter Field:=1 Set Rng = Intersect(.AutoFilter.Range.EntireRow, .Range("B34").CurrentRegion) n = "_" & .Range("C3").Value f = .Range("C5").Value 'ChDrive ThisWorkbook.Path 'ドライブ移動 ChDir ThisWorkbook.Path 'エクセルファイルのある場所に移動する Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FolderExists(ThisWorkbook.Path & "\" & "1.第一") Then MsgBox "既にご指定場所に,同名フォルダがあるようです。" & vbCrLf & "ご確認の上,再操作をして下さい。" & vbCrLf & "動作を抜けます。" Exit Sub Else MkDir ThisWorkbook.Path & "\" & "1.第一" End If Set FSO = Nothing End With Set Rng = Intersect(Rng, Rng.Offset(1), Rng.SpecialCells(xlCellTypeVisible)) '抽出なければ抜ける If Rng Is Nothing Then Exit Sub 'UserForm1.Repaint '■※1)画面更新停止 Application.ScreenUpdating = False hd1 = "1.第一" With ThisWorkbook.Sheets("参考資料") ActiveSheet.Range("$B$34:$B$40").AutoFilter Field:=1 Set Rng = Intersect(.AutoFilter.Range.EntireRow, .Range("B34").CurrentRegion) ku = WorksheetFunction.CountIf(Range("B34:B40"), "TRUE") ←ここのkuの結果(チェックボックスの結果がTRUEだった行)のみ以下の動作(ファイルのダウンロード)を行いたい 'rng.HyperlinksをLoop For Each H In Rng.Hyperlinks hLink = H.Address chk = LCase(Mid$(hLink, InStrRev(hLink, "."))) Select Case chk Case ".xls", ".xlsx", ".doc", ".docx", ".pdf" xName = Mid$(hLink, InStrRev(hLink, "/") + 1) NNN = ThisWorkbook.Sheets("参考資料").Range("AA" & H.Range.Row).Value X = ThisWorkbook.Sheets("参考資料").Range("AB" & H.Range.Row).Value xName2 = NNN & chk Holdir = "\" & hd1 & "\" BookName = ThisWorkbook.Path & "\" & Holdir & Replace$( _ xName2, chk, n & "_" & f & chk, , , vbTextCompare) BookName2 = hd1 & "\" & NNN & n & "_" & f & chk 'URLDownloadToFile API をコールする returnValue = URLDownloadToFile(0, hLink, BookName, 0, 0) H.Address = BookName2 ActiveSheet.Range("$B$34:$B$40").AutoFilter Field:=1 End Select Next End With 'Unload UserForm1 '■※1)画面更新再開 Application.ScreenUpdating = True End Sub かなりの説明下手ですので画像をご覧いただけたら・・・と思います。 大変申し訳ありませんが、 皆様、どうぞ宜しくお願い致します。

  • エクセル自動改行で互換性エラー

    エクセルで、1行35文字以上が記入されると自動で次のセルに改行される 仕様になるようにマクロを組んでいます。 ただ自身はマクロ未経験で、他のところから見様見真似で コードを調整してくっつけただけで、知識はほとんどありません。 そのため、エクセルのバージョンが違うとうまく動作しないようになっています。 どこの記述がおかしいのか、足りないのかわかりません。 制作環境:excel 2010 以下内容です。 ------------------------------------------- ' 改行自動 Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range Dim TgRng As Range Dim N As Integer Dim Ary() Dim S As String Set TgRng = Range("N10:N26") Set Rng = Intersect(TgRng, Target) If Rng Is Nothing Then Exit Sub Application.EnableEvents = False With Rng.Cells(1) If Len(.Value) > 36 Then S = .Value For N = 0 To Int((Len(S) + 35) / 36) ReDim Preserve Ary(N) Ary(N) = Left(S, 36) S = Mid(S, 37) If S = "" Then Exit For Next .Resize(UBound(Ary) + 1).Value = Application.Transpose(Ary) End If End With Application.EnableEvents = True Set Rng = Nothing Set TgRng = Nothing Erase Ary End Sub ' 切り取り禁止 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode = 2 Then Application.CutCopyMode = 0 End If End Sub -------------------------------------------

  • CountBlankの範囲指定について

    VBA勉強中の者です 変数にて指定した範囲の空白セルをカウントする為に、以下のコードを作成しました。 Sub test() Dim rng As Range Set rng = Range(Cells(1, 1), Cells(1, 10)) Dim CntBnk As Long '-------↓以下が認識されないコード-------------- CntBnk = WorksheetFunction.CountBlank(ActiveSheet.Range(rng)) '--------------------------------------------------- MsgBox (CntBnk) End Sub CountBlankの範囲指定の方法が間違っていると思われます。 簡単に CntBrk = rng.CountBlank と入力するなどしてみましたが、やはりダメでした。 自分なりに調べつつ改善してみたものの解決に至らず、どなたかご助力お願い致します。

  • EXCEL2010エラーVBA

    下記を実行するとエラーになりEXCEL2010が終了してしまいます。 fDebug:0 offset00009391 がエラーメッセージです。 何が原因でしょうか。 Private Sub Worksheet_Change(ByVal Target As Range) Dim ws As Worksheet Dim rg As Range Dim r As Variant Dim c As Long Dim hanni1 As Range Dim atai As Range Set ws = Worksheets("あああ") Set rg = Worksheets("コード").Range("A1:B10") r = ws.Cells(Rows.Count, 1).End(xlUp).Row Set hanni1 = ws.Range(Cells(2, 2), Cells(r, 3)) Set atai = ws.Range(Cells(2, 3), Cells(r, 3)) atai = Application.VLookup(hanni1, rg, 2, False) End Sub

専門家に質問してみよう