Board logo

標題: [發問] 取代的寫法&公式無法正常運算 [打印本頁]

作者: adam2010    時間: 2013-5-8 22:07     標題: 取代的寫法&公式無法正常運算

請教各位高手,如附檔~[attach]14929[/attach]
1.有一段取代的部分不知道有沒有比較快的寫法?
2.有一段公式我建立的時候可以加總,但是用巨集複製過去使用時卻無法使用,即使將標題複製後以值貼上也一樣,但是重新輸入又OK,不知道是什麼問題?
3.複製過去的公式要拉(複製)到最後一列要怎麼寫?
不好意思! :L 土法煉鋼 + 到處爬文拼湊出來的東西有點凌亂,請各位高手不吝賜教,謝謝!
作者: Hsieh    時間: 2013-5-8 23:25

回復 1# adam2010
  1. Sub ex()
  2. With Sheets("data")
  3. .Cells.Clear '清空工作表
  4.    Sheets("Original").UsedRange.Copy .[A1] '複製資料
  5.    .Columns("C").Replace "*計", "" '將含有"計"的儲存格清空
  6.    .Columns("C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete '將上列清空的位置整列刪除
  7.    .Columns("A").UnMerge 'A欄取消合併
  8.    .Rows(1) = .Rows(1).Value '標題列重新給值,可將原來數值存成文字部分改成數值
  9.    For i = 6 To 23 '分欄執行取代動作加快速度
  10.       .UsedRange.Columns(i).Replace "-", "" '去除-號
  11.    Next
  12.    .[F:P].Insert '插入欄
  13.    Sheets("公式").[F1:P2].Copy .[F1] '複製公式
  14.    r = .Cells(.Rows.Count, 5).End(xlUp).Row '資料列數
  15.    .Range("F2:P2").AutoFill Destination:=.Range("F2:P" & r) '公式向下填滿
  16. End With
  17. End Sub
複製代碼

作者: adam2010    時間: 2013-5-9 00:03

感謝Hsieh大如此迅速地回覆,而且如此簡短的程式就將我的疑問都解決了,
而且說明很詳盡,應該可以自己活用,真是太感謝了!
作者: adam2010    時間: 2013-5-9 11:13

本帖最後由 Hsieh 於 2013-5-9 14:02 編輯

Dear Hsieh大,由於複製公式還有一段是在工作表右側尾端(位置不固定),我是用
    Selection.End(xlToRight).Select
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    '找到最右邊一欄的旁邊那一欄
        
    Sheets("公式").Select
    ActiveWindow.LargeScroll ToRight:=3
    Range("DL1:DS2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("data").Select
    ActiveSheet.Paste
    '將公式複製過來
但是我要如何找到公式範圍向下填滿?
作者: Hsieh    時間: 2013-5-9 14:14

回復 4# adam2010
  1. Sub ex()
  2. With Sheets("data")
  3. .Cells.Clear '清空工作表
  4.    Sheets("Original").UsedRange.Copy .[A1] '複製資料
  5.    .Columns("C").Replace "*計", "" '將含有"計"的儲存格清空
  6.    .Columns("C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete '將上列清空的位置整列刪除
  7.    .Columns("A").UnMerge 'A欄取消合併
  8.    .Rows(1) = .Rows(1).Value '標題列重新給值,可將原來數值存成文字部分改成數值
  9.    For i = 6 To 23 '分欄執行取代動作加快速度
  10.       .UsedRange.Columns(i).Replace "-", "" '去除-號
  11.    Next
  12.    .[F:P].Insert '插入欄
  13.    Sheets("公式").[F1:P2].Copy .[F1] '複製公式
  14.    r = .Cells(.Rows.Count, 5).End(xlUp).Row '資料列數
  15.    .Range("F2:P2").AutoFill Destination:=.Range("F2:P" & r) '公式向下填滿
  16.    k = .UsedRange.Columns.Count + 1 '得到已使用欄位數
  17.    Sheets("公式").[DL1:DS2].Copy .Cells(1, k) '複製公式到表尾
  18.    .Cells(2, k).Resize(, 8).AutoFill .Range(.Cells(2, k), .Cells(r, k + 7)) '向下填滿
  19. End With
  20. End Sub
複製代碼

作者: adam2010    時間: 2013-5-9 21:02

真是太神了,在這個論壇真得顛覆了我對Excel巨集的看法,
最重要的是很多像Hsieh大一樣熱心的人的付出,真是太感謝了!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)