استفاده از Find و Replace در VB به صورت شرطی

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • sabertb

    • 2014/04/09
    • 347
    • 45.00

    استفاده از Find و Replace در VB به صورت شرطی

    سلام خدمت همه اساتید گرامی
    با تبریک سال نو خدمت همه عزیزان سوالی در مورد VB داشتم
    در فایل پیوست قصد دارم سطر Sample را در مقابل هر نام پروژه کپی کنم و با استفاده از روش Find & Replace اسم پروژه مورد نظرش رو جایگزینه کلمه Sample کند (نکته حتما از روش Find & Replace استفاده شود) با این شرط که به ترتیب از بالا به پایین در مقابل ستون پروژها این کار را بکند و وقتی به سلول خالی یا صفر رسید متوقف شود.

    کد:
    Sub Macro2()
    '
    ' Macro2 Macro
    '
    
    
    '
        Range("D2:M2").Select
        Selection.Copy
        Range("D4").Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Selection.Replace What:="SAMPLE", Replacement:="A", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Range("D5").Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Selection.Replace What:="SAMPLE", Replacement:="B", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Range("D6").Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Selection.Replace What:="SAMPLE", Replacement:="C", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Range("D7").Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Selection.Replace What:="SAMPLE", Replacement:="E", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End Sub
    فایل های پیوست شده
    Last edited by sabertb; 2019/04/10, 16:39.
    :min10::min18::min13::min22:
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

    کدهای ذیل را تست کنید.

    کد PHP:
    Sub test()

    z1 Cells(Rows.Count"c").End(xlUp).Row

    k1 
    Cells(3Columns.Count).End(xlToLeft).Column

    For 4 To z1

    For 4 To k1

    Cells
    (ij) = Cells(i3) & Cells(3j)

    Next

    Next


    End Sub 
    فایل های پیوست شده

    کامنت

    • sabertb

      • 2014/04/09
      • 347
      • 45.00

      #3
      نوشته اصلی توسط iranweld
      با سلام

      کدهای ذیل را تست کنید.

      کد PHP:
      Sub test()

      z1 Cells(Rows.Count"c").End(xlUp).Row

      k1 
      Cells(3Columns.Count).End(xlToLeft).Column

      For 4 To z1

      For 4 To k1

      Cells
      (ij) = Cells(i3) & Cells(3j)

      Next

      Next


      End Sub 
      ممنون از راهنماییتون ولی همانطور که در متن سوال نوشتم دقیقا کمک از دستور Find &Replace مورد نظرم هست چون ممکنه بجای سطر Sample یه رشته فرمول باشد که لازم هست داخل فرمول بخشی که مثلا Sample نام دارد در آدرس دهی به اسامی ستون Projectها تغییر یابد
      :min10::min18::min13::min22:

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        این کد را تست کنید

        کلمه مورد نظر برای Replace را در سلول B1 وارد کنید

        کد PHP:
        Sub Macro2()

            
        Range("D2:M2").Copy
            
            
        For 4 To 10
            
            
            Range
        ("D" i).PasteSpecial Paste:=xlPasteFormulasOperation:=xlNone_
                SkipBlanks
        :=FalseTranspose:=False
            Selection
        .Replace What:=Range("b1"), Replacement:=Range("c" i), LookAt:=xlPart_
                SearchOrder
        :=xlByRowsMatchCase:=FalseSearchFormat:=False_
                ReplaceFormat
        :=False
                
                Next
            
        End Sub 
        فایل های پیوست شده

        کامنت

        • sabertb

          • 2014/04/09
          • 347
          • 45.00

          #5
          نوشته اصلی توسط iranweld
          این کد را تست کنید

          کلمه مورد نظر برای Replace را در سلول B1 وارد کنید

          کد PHP:
          Sub Macro2()

              
          Range("D2:M2").Copy
              
              
          For 4 To 10
              
              
              Range
          ("D" i).PasteSpecial Paste:=xlPasteFormulasOperation:=xlNone_
                  SkipBlanks
          :=FalseTranspose:=False
              Selection
          .Replace What:=Range("b1"), Replacement:=Range("c" i), LookAt:=xlPart_
                  SearchOrder
          :=xlByRowsMatchCase:=FalseSearchFormat:=False_
                  ReplaceFormat
          :=False
                  
                  Next
              
          End Sub 
          سلام خیلی عالی بود فقط یه مورد مونده اونم رنجی که توش کپی میکنه متناسب با ستون اسامی پروژه ها نیست مثلا اگر ستون شامل 15 تا پروژه بود جولوی اون 15 تارو قرار بده و تغییرات بده اگر 2 تا بود همون دوتارو انجام بده
          :min10::min18::min13::min22:

          کامنت

          چند لحظه..