[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『都度変化する最終列から指定列までのコピーと挿入』(VBA初心者)
VBAの初心者です。
作成中にエラーが発生しましたが自己解決出来ず、
皆様のお力添えを頂きたく、何卒宜しくお願いいたします。
Excel Office365、Windows 10です。
マスタとなるシート("マスタシート")以外の複数シートに対して、
それぞれ同じ作業を繰り返し行うことが目的です。
各シートの最終列から、左側に任意の列数移動した列範囲分を選択コピーし、
同じく最終列から左側に任意の列数移動した列にコピーデータを挿入する、
というものです。
下記の部分で"実行時エラー'13':型が一致しません。"
とエラー表示されます。
Columns("lastColumn - 7:lastColumn - 3").Copy
Columns("lastColumn - 2").Insert Shift:=xlShiftToRight
"lastColumn"や"lastColumn - 7"等の値を、
仮に(P:T)や(U)等の列番号?にしてみると、望むような動きをする為、
lastColumnの記述と、− X等の部分に問題があると推測しておりますが、
そこからが全く解決出来ず、苦慮しています。
毎回データが列の右側に増えていき、
最終列が変化する為、最終列から指定範囲をコピーと挿入したい次第です。
Sub Insert()
Dim WB As Workbook Set WB = ActiveWorkbook Dim targetSheet As Worksheet Dim lastColumn As Long lastColumn = ActiveSheet.Cells(4, Columns.Count).End(xlToLeft).Column For Each targetSheet In Worksheets targetSheet.Activate If targetSheet.Name <> "マスタシート" Then Columns("lastColumn - 7:lastColumn - 3").Copy Columns("lastColumn - 2").Insert Shift:=xlShiftToRight Application.CutCopyMode = False Range("A1").Select End If Next WB.Worksheets(1).Activate End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
書いてる間に回答ありましたが、そのまま投稿します。 -- 二重に誤解があるようです。
1)変数を""で囲ってしまうと文字列として認識されてしまいます。 仮に直すならColumns(lastColumn - 7 & ":" & lastColumn - 3).Copy ですが、これも間違いです。詳しくは2)を参照。
2)数値を用いてColumns("1:3")やColumns(1:3)という書き方は出来ません。 数値で指定する場合はRangeを用いてRange(Columns(1),Columns(3))の様に記述します。 今回の場合は、 Range(Columns(lastColumn - 7), Columns(lastColumn - 3)).Copy でしょうか。 (名無し) 2021/08/07(土) 14:07
>Columns("lastColumn - 7:lastColumn - 3")
ダブルクォーテーションで括ったら、それは文字列ということを示してしまいます。
変数名をダブルクォーテーション内に配置してはだめです。
また、セル範囲は、色々な言葉で言い表せます。
たくさんの言葉を覚えましょう。
Sub test()
Dim ws As Worksheet Dim c As Range
For Each ws In Worksheets If ws.Name <> "マスタシート" Then Set c = ws.Cells(4, ws.Columns.Count).End(xlToLeft).EntireColumn c.Offset(, -7).Resize(, 4).Copy c.Offset(, -2).Insert End If Next End Sub
参考URL>>
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html
(まっつわん) 2021/08/07(土) 14:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.