返回列表 上一主題 發帖

[發問] 如何讓執行巨集的範圍,剛好在這一次複製的範圍內

[發問] 如何讓執行巨集的範圍,剛好在這一次複製的範圍內

想請教各位
我寫了一個巨集
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欄位要如何修改,才可以剛好只落在我這一次複製的範圍內
謝謝

回復 14# 准提部林


    謝謝准大指導
           假日愉快

TOP

回復 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
 

TOP

回復 12# 准提部林


      請教准大
前提一樣在既有的選擇區內 , 再選一次我要的範圍時
如果用Columns()時,但這一次我想要選擇倆個以上的欄位
請問要如何修改
謝謝

TOP

回復 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

TOP

回復 10# GBKEE


    G大
剛試了一下,還是得用你的方法才行
謝謝!!   假日愉快

TOP

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# 准提部林

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

TOP

回復 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

大約串文字碼,請自行測試!

TOP

回復 3# GBKEE


   G大
你的方法,我還要努力中
謝謝

TOP

        靜思自在 : 君子如水,隨方就圓,無處不自在。
返回列表 上一主題