VBA之單元格操作2 篩選拆分資料

2021-10-04 10:13:22 字數 1257 閱讀 4409

有這樣乙個資料表,

現在想把d列的車間所在的每一行資料,複製到其他對應的工作表裡,用vba如何去實現呢

sub chaifen()

dim i, j as integer

for i = 2 to range(「a65535」).end(xlup).row

j = sheets(sheet1.range(「d」 & i).value).range(「a65535」).end(xlup).row + 1

sheet1.range(「a」 & i).entirerow.copy sheets(sheet1.range(「d」 & i).value).range(「a」 & j)

next

end sub

**解讀如下:

首先確認一共有多少行,range(「a65535」).end(xlup).row 這段**能拿到所有的有資料的行數

然後是j = sheets(sheet1.range(「d」 & i).value).range(「a65535」).end(xlup).row + 1

這段**分成兩部分看

第一部分

sheets(sheet1.range(「d」 & i).value)這麼多是確認d列的每一行的值,

第二部分

.range(「a65535」).end(xlup).row + 1就能拿到其對應的行數+1

然後是sheet1.range(「a」 & i).entirerow.copy sheets(sheet1.range(「d」 & i).value).range(「a」 & j)

分三部分看

第一部分

sheet1.range(「a」 & i).entirerow.copy 這麼多,是複製每個a一整行

第二部分

sheets(sheet1.range(「d」 & i).value)

是把上面複製的內容,貼上到所在的工作表裡, 「d」 & i對應後面每個工作表

第三部分

.range(「a」 & j) 是標示內容複製到後面的工作表對應的位置

最終**執行完了的結果是

操作單元格物件2 Excel之VBA(6)

cells n,m 行n,列m選擇單元格 當前面分表用迴圈來做,工作量大,需要逐條掃瞄,可用篩選快速高效 autofilter 引數 field 4 criteria1 一車間 示例 range a 1 f 100 autofilter 牛刀小試 資料按分列方式拆分多表 要點 新建表時迴避重名錯誤 ...

VBA 06操作單元格物件

使用三種方式表示 range cells microsoft文件 表示乙個單元格 一行 一列 乙個包含單個或若干連續單元格區域的選定單元格範圍,或者乙個三維區域 表示單元格物件 單個單元格 range a1 單元格區域 range a1 b10 一行或多行單元格區域 range 1 5 一列或多列單...

操作單元格物件2

呼叫清空過程 歸類 sub tt call t1 呼叫t1清空過程 dim i,j,k as integer for j 2 to sheets.count for i 2 to sheets 1 range d65536 end xlup row if sheets 1 range d i she...