システムwiki

異なるファイルとシートにデータを分割するためのVBAコード(シリアル番号を追加する必要があります)

WaseemA 受付中 最終更新日:2021-06-16 15:44

こんにちは親愛なる専門家

以下のVBAコードは、さまざまなシートやファイルにデータを分割するのに問題ありません.しかし、私はコードではほとんど修正を望んでいます.データの開始(1,2,3 .........から始めて)のデータの先頭にすでにシリアル番号があります.データが異なるシートまたはファイルに分割されるとき、各シートまたはファイルのデータシリアル番号は無秩序です.

データ分割を希望する場合、各ファイルのシートは(1,2,3 ..........)までのデータ終了からシリアル番号を開始します.

VBAコード

サブ
splitdatabase2()

範囲

としてDIM C

ワークシートとしてのDIM DSH

ワークシートとしての薄暗い灰

DIM STRNAME

範囲

としてのDIM RNGC

範囲

としてのDIM RNGK

LONG

を薄暗いLNGKC

文字列

として薄暗いnewshname

ASH= 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)

2 #
WaseemA

あなたの返事のためにJeovanyありがとう.

シートまたはファイル名にシリアル番号を追加したくありません.データの開始時にシリアル番号を持つファイルに1000行のデータがあるとします.データを分割した後は、ファイル内の各ファイルデータのシリアル番号を必要とします.

私を完全なコードをコピーすることをさらに願って、私はVBAにはるかに慣れていません.

応答2# ->にスキップ
1 #
Jeovany

ファイルへのリンクを共有し、私はあなたの問題に対する解決策のために働きます

あなたがそれをする方法を手伝う必要があるならば、

https://www.youtube.com/watch?v=nnxse0snucc&t=14s.