[算表] vba簡化跟分表存檔問題

看板Office作者 (佩蒂吉他)時間9年前 (2017/05/12 09:42), 9年前編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
軟體:excel 版本:2007以上 我有個table類似 班級 姓名 分數 一班 A 50 二班 B 60 . . . . . . . . . . . . 用錄製巨集+修改弄了個檔案: https://drive.google.com/open?id=0BwCgrQhGgaw7UHZpd1pUN25pNE0 主要有兩個問題 1.我是把班級複製到P欄位 然後移除重複 用迴圈跑這段 然後 新增檔案 複製過去 存檔關閉 不知道這段若是不要複製P欄位移除重複的方式 直接在班級那邊就取唯一值不知道該怎麼改? 2.存檔後都會多出sheet2 sheet3等工作表 雖說可以直接刪這兩個工作表 但是不知道有沒有方式直接輸出檔案像是一班.xlsx 裡面只有唯一一個一班的工作表? 感謝各位大大.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.77 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1494553347.A.4AB.html ※ 編輯: ptguitar (60.250.67.77), 05/12/2017 09:42:58

05/12 10:15, , 1F
問題1,dictionary、判斷字串配合instr或判斷array配合工
05/12 10:15, 1F

05/12 10:15, , 2F
作表函數match
05/12 10:15, 2F
感謝S大 不過我用application countif寫 移動範圍計算 若是=1 就新增workbook方式 但是都會到一班那邊出錯 不知道怎麼回事 VBA初學者問題很多 感謝指教^^ https://drive.google.com/open?id=0BwCgrQhGgaw7MDdmNDY5aHphcTg For i = 2 To Range("A2").End(xlDown).Row If Application.CountIf(Range("A2:A" & i), Range("A" & i)) = 1 Then With mytable .AutoFilter 1, Range("A" & i).Value .Copy End With Workbooks.Add 1 With ActiveSheet.Range("A1") .PasteSpecial xlPasteValues .PasteSpecial xlPasteFormats End With ActiveSheet.Name = Range("A" & i).Value ActiveWorkbook.SaveAs "d:\輸出\" & Range("A" & i).Value & ".xlsx" Workbooks(Range("A" & i).Value & ".xlsx").Close SaveChanges:=False Application.CutCopyMode = False mytable.AutoFilter End If Next i

05/12 10:23, , 3F
問題2,workbooks.add 1
05/12 10:23, 3F

05/12 10:27, , 4F
或sheetsinnewworkbook指定數量後再新增活頁簿
05/12 10:27, 4F
※ 編輯: ptguitar (60.250.67.77), 05/12/2017 14:46:40

05/12 14:55, , 5F
將activesheet.name、activeworkbook.saveas和workbooks()
05/12 14:55, 5F

05/12 14:55, , 6F
.close指定range("a" & i)的部分改為range("a2")
05/12 14:55, 6F

05/12 15:11, , 7F
感謝S大!是因為篩選後會留下range("A2")那筆嗎?
05/12 15:11, 7F

05/12 16:13, , 8F
為篩選後複製到新活頁簿工作表儲存格a2那筆
05/12 16:13, 8F

05/12 16:19, , 9F
了解!!
05/12 16:19, 9F

05/12 16:38, , 10F
剛剛研究知道自己問題出那了 感謝soyoso大大提示~
05/12 16:38, 10F
文章代碼(AID): #1P5HC3Ih (Office)
文章代碼(AID): #1P5HC3Ih (Office)