Board logo

標題: [發問] 如何讓執行巨集的範圍,剛好在這一次複製的範圍內 [打印本頁]

作者: pupai    時間: 2016-10-8 09:11     標題: 如何讓執行巨集的範圍,剛好在這一次複製的範圍內

想請教各位
我寫了一個巨集
Sub test()
Selection.PasteSpecial xlPasteValuesAndNumberFormats
Range("B2").Replace What:="/", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

每次使用巨集前
我會先用滑鼠選擇我要複製的範圍(每次範圍都不一樣)
再用滑鼠點選到我要複製的目地欄位A2,然後啟動巨集
第一次可以用,但第二次就不行
因為我如果目地變A5或其他地方,這個巨集卻只會改變B2範圍,而不是我要的B5範圍或其他地方範圍

我曾嘗試把
Range("B2").Replace What:="/", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

改為 Range("B:B")  但程式卻把整個B欄位都取代 (這不是我想要的)

我希望 如果複製Range(" A2:G2"),程式可以幫我只改Range("B2")
                 或複製Range(" A5:G10"),程式可以幫我只改Range("B5:B10")

想請教各位,我這一段B欄位要如何修改,才可以剛好只落在我這一次複製的範圍內
謝謝
作者: pupai    時間: 2016-10-8 15:31

因該是類似Range("B65536").End(xlUp).Copy
作者: GBKEE    時間: 2016-10-8 15:47

回復 2# pupai
是這樣媽?
  1. Option Explicit
  2. Sub test()
  3.     Dim Rng As Range
  4.     Selection.PasteSpecial xlPasteValuesAndNumberFormats
  5.     Set Rng = Selection
  6.     Range("B" & Rng.Row).Resize(Rng.Rows.Count).Replace What:="/", Replacement:="", LookAt:=xlPart, _
  7.         SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
  8.         ReplaceFormat:=False
  9. End Sub
複製代碼

作者: 准提部林    時間: 2016-10-8 18:34

With Selection
   .PasteSpecial xlPasteValuesAndNumberFormats
   .Columns(2).Replace "/", "", LookAt:=xlPart
End With
作者: pupai    時間: 2016-10-8 20:41

這樣複雜 有沒有簡化版
謝謝
作者: pupai    時間: 2016-10-8 22:29

回復 4# 准提部林


准大好
你的方式比較適合我
想再請教 同樣的道理 這一次我希望日期轉換
請教.Columns(2)我要如何修改  謝謝
Selection.TextToColumns Destination:=Selection, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 10), TrailingMinusNumbers:=True
作者: pupai    時間: 2016-10-8 22:30

回復 3# GBKEE


   G大
你的方法,我還要努力中
謝謝
作者: 准提部林    時間: 2016-10-8 23:24

回復 6# pupai


With Selection
   .PasteSpecial xlPasteValuesAndNumberFormats
   With .Columns(2)
      .Replace "//", "", LookAt:=xlPart
      .TextToColumns Destination:=Selection, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 10), TrailingMinusNumbers:=True
   End With
End With

大約串文字碼,請自行測試!
作者: pupai    時間: 2016-10-9 13:28

回復 8# 准提部林

准大好
Columns(2)只可以幫我改一個儲存格
但是我希望 如果複製Range(" A2:G2"),程式可以幫我只改Range("B2")
                 或複製Range(" A5:G10"),程式可以幫我只改Range("B5:B10")
請教我要如何修改
謝謝
作者: GBKEE    時間: 2016-10-9 14:19

回復 9# pupai
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range
  4.     Selection.PasteSpecial xlPasteValuesAndNumberFormats
  5.     Set Rng = Selection
  6.      With Range("B" & Rng.Row).Resize(Rng.Rows.Count)
  7.             .Cells.TextToColumns Destination:=.Cells, TextQualifier:=xlNone, DataType:=xlDelimited, _
  8.             ConsecutiveDelimiter:=True, FieldInfo:=Array(1, 5), TrailingMinusNumbers:=True
  9.     End With
  10. End Sub
複製代碼

作者: pupai    時間: 2016-10-9 15:03

回復 10# GBKEE


    G大
剛試了一下,還是得用你的方法才行
謝謝!!   假日愉快
作者: 准提部林    時間: 2016-10-9 17:06

回復 9# pupai


Selection.PasteSpecial xlPasteValuesAndNumberFormats
With Selection.Columns(2)
      .TextToColumns Destination:=.Cells, DataType:=xlDelimited, _
         TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
         Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 10), TrailingMinusNumbers:=True
End With
作者: pupai    時間: 2016-10-9 18:35

回復 12# 准提部林


      請教准大
前提一樣在既有的選擇區內 , 再選一次我要的範圍時
如果用Columns()時,但這一次我想要選擇倆個以上的欄位
請問要如何修改
謝謝
作者: 准提部林    時間: 2016-10-9 20:26

回復 13# pupai


連續欄位:
With Selection
   Range(.Columns(2), .Columns(4)).Select
End With

With Selection
   .Columns(2).Resize(, 3).Select
End With

跳欄:
With Selection
   Union(.Columns(2), .Columns(4)).Select
End With
 
作者: pupai    時間: 2016-10-9 21:06

回復 14# 准提部林


    謝謝准大指導
           假日愉快




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