Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


806 / 13645 ツリー ←次へ | 前へ→

【78210】セルの範囲を1行に羅列させる 倒ビン対策 16/5/26(木) 11:54 質問[未読]
【78211】Re:セルの範囲を1行に羅列させる 独覚 16/5/26(木) 13:25 発言[未読]
【78212】Re:セルの範囲を1行に羅列させる 倒ビン対策 16/5/26(木) 15:39 お礼[未読]

【78210】セルの範囲を1行に羅列させる
質問  倒ビン対策  - 16/5/26(木) 11:54 -

引用なし
パスワード
   御世話になります。
特定のフォルダー内にあるファイルの決まった範囲を配列で取り込んで
別ファイルに1行で横へ追記していく動きをさせたく、色々なコードを
参考に作成しましたが、添字mの値が65で【実行時エラー9 インデックスが
有効範囲にありません】と表示され止ってしまいます。
あれこれ1日半ぐらい考えましたが解決する力量が無く
ご助言など頂けますようお願い致します。


Sub 新規レコード転記2()
  Dim SaleAry As Variant
  Dim i As Integer
  Dim j As Integer
  Dim m As Integer
  Dim a As Integer
  Dim b As Integer

Dim SULastRow As Long
Dim DSLastRow As Long
Dim FolderName As String
Dim FileNeme As String

ダイアログ表示:

FolderName = フォルダーダイアログ()

FileNeme = Dir(FolderName & "\*.xls", vbNormal)
 
 If FileNeme = "" Then
  MsgBox "EXCEL ブックがありません"
  
   GoTo ダイアログ表示
   
   End If
   
   Do While FileNeme <> ""
  
   Workbooks.Open (FolderName & "\" & FileNeme)
    With Worksheets(1)
      
  SaleAry = Range("A7:I14").Value
  
    End With
   
  l = 0
  m = 0

  a = UBound(SaleAry)
  b = UBound(SaleAry, 2)
  
  
   With ThisWorkbook.Worksheets("殺菌条件")
  
   DSLastRow = ThisWorkbook.Worksheets("殺菌条件").Range("B65536").End(xlUp).Row
   
     For j = 1 To b
              For i = 1 To a
    
        m = m + 1
       
   .Cells(DSLastRow + 1, m).Value = SaleAry(j, i)

               Next i
         i = 1
     Next j
   
   Set SaleAry = Nothing
  
   
   End With
    
   ActiveWorkbook.Close
   
   FileNeme = Dir()
   
   Loop
   
   ThisWorkbook.Worksheets("殺菌条件").Activate
   
   End Sub

【78211】Re:セルの範囲を1行に羅列させる
発言  独覚  - 16/5/26(木) 13:25 -

引用なし
パスワード
   ▼倒ビン対策 さん:
Withtを指定しているのにその後使っていないとか
>l = 0
この「l」(Lの小文字)って「i」の間違い?
とかインデントがむちゃくちゃとかは置いといて。

エラーの原因は
>.Cells(DSLastRow + 1, m).Value = SaleAry(j, i)
のjとiが逆では?

あるいは
>For j = 1 To b
>  For i = 1 To a
のaとbが逆か。

【78212】Re:セルの範囲を1行に羅列させる
お礼  倒ビン対策  - 16/5/26(木) 15:39 -

引用なし
パスワード
   早速ご回答有難うございます。
小文字のlは消し忘れが一つありました。
そしてjとiは入れ替えてズバリ正解で本当に助かりました。
有難うございます。

806 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free