異なるファイルとシートにデータを分割するためのVBAコード(シリアル番号を追加する必要があります)
こんにちは親愛なる専門家
以下のVBAコードは、さまざまなシートやファイルにデータを分割するのに問題ありません.しかし、私はコードではほとんど修正を望んでいます.データの開始(1,2,3 .........から始めて)のデータの先頭にすでにシリアル番号があります.データが異なるシートまたはファイルに分割されるとき、各シートまたはファイルのデータシリアル番号は無秩序です.
データ分割を希望する場合、各ファイルのシートは(1,2,3 ..........)までのデータ終了からシリアル番号を開始します.
VBAコード
サブ
splitdatabase2()
範囲
としてDIM CワークシートとしてのDIM DSH
ワークシートとしての薄暗い灰
DIM STRNAME
範囲
としてのDIM RNGC範囲
としてのDIM RNGKLONG
を薄暗いLNGKC文字列
として薄暗いnewshnameASH= ActiveSheet
を設定しますRNGC= Application.InputBoxを設定します(「データ・セット内のセルを選択」
タイプ:= 8)
RNGC= RNGC.CurrentRegion
を設定しますRNGK= Application.InputBoxを設定します( "キー列のセルを選択します.
データ・セット "、タイプ:= 8)
lngkc= rngk.column
Application.DisplayArerts= false
application.enableEvents= false
灰
を使ってIntersect(RNGC、RNGK.EntireColumn).advancedfilter
処置:= XLFilterCopy、_
CopyTorange:=.セル(.ROWS.COUNT、
lngkc).end(xlup)(3)、一意:= true
.cells(.rows.count、lngkc).end(Xlup).currentRegion
各Cのごとに
.cells.offset(1).Resize(.cells.count-1,1)
の場合は、<>
""
トランケートシート
MAX 31文字
newshname=
左(C.Value、31)
エラー履歴書
次の
'
Application.DisplayArerts= false
'
もしの場合
腸内(C.Value)there
ワークシート(CSTR(NewShname)).削除
'
else
'
ワークシート(NewShName).Delete
'
エラーに0
Application.Displayalerts= true
DSH=を設定します
worksheets.add(後:=ワークシート(worksheets.count))
dsh.name=
newshname
もしの場合
腸内(C.Value)there
RNGC.AutoFilterフィールド:= LNGKC-RNGC.Cells(1,1).Column + 1、
基準1:= C.Value
else
RNGC.AutoFilterフィールド:= LNGKC-RNGC.Cells(1,1).Column + 1、
基準1:= C.Value
RNGC.SpecialCells(XLCellTypeVisible).copy dsh.range( "A1")
rngc.autofilter
dsh.cells.entirecolumn.AutoFit
の場合は終わります次のC
で終わります で終わりますMSGBOXの場合(「ファイルに新しいシートをエクスポートしますか?」、VBYESNO)= VBYES
その後
ActiveWorkbook.Worksheets
の各DSHについてdsh.name<>ash.name
の場合dsh.move
ActiveWorkbook.Saveas.
ThisWorkbook.Path&"\"&ActiveSheet.Name&
".xlsx"
ActiveWorkbook.Close
の場合は終わります次のDSH
の場合は終わりますApplication.Displayalerts= true
application.enableEvents= true
終わり
サブ
RGDS.
waseem
返信リスト(回答:3)
あなたの返事のためにJeovanyありがとう.
シートまたはファイル名にシリアル番号を追加したくありません.データの開始時にシリアル番号を持つファイルに1000行のデータがあるとします.データを分割した後は、ファイル内の各ファイルデータのシリアル番号を必要とします.
私を完全なコードをコピーすることをさらに願って、私はVBAにはるかに慣れていません.