1樓:陽光上的橋
程式**如下圖:
操作示例如下圖:
程式文字:option explicit
sub 轉置()
dim arr1, arr2, r1 as range, r2 as range, i&, j&, k&
arr1 = r1
i = ubound(arr1)
j =redim arr2(1 to / j, 0), 1 to j)k = 1for i = 1 to ubound(arr2)for j = 1 to ubound(arr2, 2)if k <=ubound(arr1) then arr2(i, j) =arr1(k, 1)
k = k + 1
next j
next i
ubound(arr2, 2)) arr2end sub
excel vba多行轉一列,煩請大佬看下**問題?
2樓:網友
答案更新】你只需要在**中設定好兩個常量。
的值,即可。
程式只遍歷資料的行,避免了遍歷所有資料的元素。
這樣比較節清拍省時間,特別是資料較多時,尤為明顯。
sub 資料轉置()
rem 下面是蠢謹宣告兩個常量。
const rg1$ =c2" '請用文字表示原資料第1個單元格的名稱】
const rg2$ =b2" '請用文字表示轉置後第1個單元格的名稱】
rem 下面宣告變數並處理資料。
if range(rg1) =then exit sub '如果rg1格是空的則退出程式。
dim ic%, ir&, i&, irow&, arr
irow = range(rg2).row '賦值給irow乙個初始值。
ic = cells(range(rg1).row, '獲取rg1所在行中已使用的最大列號。
ir = cells(, range(rg1).column).end(3).row '獲取rg1所在列中已使用的最大行號。
for i = range(rg1).row to ir '遍歷資料的行。
arr = , range(rg1).column).resize(1, ic - range(rg1).column + 1)) 將該行轉置並賦值給陣列。
cells(irow, range(rg2).column).resize(ubound(arr), 1) =arr '輸出陣列資料到rg2所在的列中。
irow = cells(, range(rg2).column).end(3).row + 1 '重新賦值,獲取rg2所在列中已使帶正基用的最大行號+1
next i
msgbox "轉置完畢", 64 '彈出提示資訊對話方塊。
end sub
excel中用VBA提出一列資料中含有0369數字的單元格
sub aa dim m 記錄相同數 dim ro as integer 記錄符合結果數字所在行k activesheet.range c1 c65536 end xldown row ro k for i k to 1 step 1m 0 for j 1 to len cells i,3 a mi...
將excel中的一列資料按照對應另一列的條件篩選顯示為多列
不行吧?我也沒試過 excel 如何按照一列資料內容在另一列中查詢對應內容 使用vlookup函式處理 excel版本參考 2010 模擬資料 a1 b5,查詢測試對應的資料 1 e1輸入公式 vlookup d1,a b,2,0 2 回車,檢視效果 d1輸入 vlookup a1,b 1 c 10...
VBA如何將滿足條件的內容複製到另一列,求懂程式設計的大神幫幫忙!!跪求
滿足你要求的vba 如下 option explicit sub ygb dim i,j,x1,x2,i2,nx1 cells 3,n x2 cells 4,n i2 2 下一個儲存結果的行 for i 4 to cells 65536,k end xlup row if cells i 2,k x...