有這樣乙個資料表,
現在想把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...