結合されたセルの文字列を、変数に入れたいのですが、件名の通りのエラーが表示されます。
いままで左上のセル番号のみを指定すれば問題なく処理されたのですが、今回に限っては処理されません。
このエラーについて調べたのですが、「VBAが予期せぬエラー」とのことで、改善点が見つかりません。
下記の通り、色々な方法で試したのですが全て同様のエラーといなります。
Bcate = Range(Cells(9, 9), Cells(rowcate, colcate)).Find(cate).Column zyaname = Cells(6,Bcate)
Bcate = Range(Cells(9, 9), Cells(rowcate, colcate)).Find(cate).Column zyaname = Cells(6,Bcate).Value
Bcate = Range(Cells(9, 9), Cells(rowcate, colcate)).Find(cate).Column zyaname = Range(Cells(6, Bcate), Cells(9, Bcate))
Bcate = Range(Cells(9, 9), Cells(rowcate, colcate)).Find(cate).Column zyaname = Range(Cells(6, Bcate), Cells(9, Bcate)).Value
変数Bcateへは問題なく変数が入力されており(10)、目的の文字列が有るのはJ列です。
セルは6列目から9列目まで結合されており、ここの文字列を変数に入れ込みたいです。
同じような経験されたことが在る方、または当方のケアレスミスの可能性など(変数の参照違い以外で)考えられる原因をご指摘いただきたく質問致しました。
よろしくお願いします。
全体のコードはこちらです
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim EROW As Long Dim Row As Long Dim col As Long Dim log As String EROW = Cells(Rows.Count, 2).End(xlUp).Row Row = Target.Row col = Target.Column If Row <= EROW And Row > 5 And col = 2 And Cells(Row, 2).Interior.ColorIndex = 34 Then If Cells(Row, 5) = "" Then MsgBox "記録日が記載されていません。" End If Dim WB As String Dim path As String Dim cate As String Dim rowcate As Long Dim colcate As Long Dim Bcate As String Dim Bname As String Dim sename As String Dim zyaname As String Dim tgtsheet As String Dim PRow As Long path = ThisWorkbook.path WB = ThisWorkbook.name cate = Cells(Row, 2) tgtsheet = Cells(Row, 4) i = 1 Do While Cells(i, 9) <> "規 則" i = i + 1 Loop rowcate = i - 1 colcate = Cells(6, Columns.Count).End(xlToLeft).Column Bcate = Range(Cells(9, 9), Cells(rowcate, colcate)).Find(cate).Column zyaname = Range(Cells(6, Bcate), Cells(9, Bcate)).Value '’’’’’’’’’’’’’’’ここ質問中 sename = "書籍一覧(" & zyaname & ")" Bname = "書籍記録(" & Cells(6, Bcate) & ")" Workbooks.Open path & "\" & Bname & ".xlsx" '指定のワークブックを開く Workbooks(WB).Worksheets(tgtsheet).Move After:=Workbooks(Bname).Sheets(Worksheets.Count) '読書データのブックを移動 Workbooks(Bname).Close savechanges:=True '変更を保存して閉じる Workbooks(WB).Worksheets(sename).Activate '貼り付け先のシート PRow = Cells(Rows.Count, 2).End(xlUp).Row '貼り付け先のリスト最終行 Worksheets("インデックス").Range(Cells(Row, 2), Cells(Row, 8)).Cut Destination:=Worksheets(sename).Cells(PRow + 1, 2) 'インデックスからコピペ Worksheets("インデックス").Activate Range(Cells(Row, 2), Cells(Row, 8)).Delete shift:=xlShiftUp '切り取った部分を削除して上にシフト Range(Cells(4, 1), Cells(105, 8)).Borders.LineStyle = xlContinuous '格子作成 Range(Cells(4, 1), Cells(105, 8)).BorderAround Weight:=xlThick '周囲太枠 End If End Sub
今回質問しました箇所に「ここ質問中」というコメントが付いています。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー