İpucu: Digər dillər Google-tərcümə olunur. Sizi ziyarət edə bilərsiniz English bu linkin versiyası.
Daxil ol
x
or
x
x
Qeydiyyatdan
x

or

Hücre formulunun dəyişməsi nəticəsində makroyu avtomatik olaraq necə idarə etmək olar?

Şübhəsiz, A sütununda və B sütununda verilən məlumatlara əsaslanan formulalar siyahısı var, aşağıdakı ekran görünüşüdür, indi, nisbi hüceyrələrin dəyişməsi ilə formula nəticə dəyişdikdə xüsusi makro kodunu avtomatik olaraq çalıştırmak istərdim. Excel-də bu işi həll etmək üçün yaxşı bir fikir varmı?

Hücredəki formula VBA kodu ilə dəyişirsə, avtomatik olaraq makroyu çalıştırın


Hücredəki formula VBA kodu ilə dəyişirsə, avtomatik olaraq makroyu çalıştırın


Aşağıdakı VBA kodu, formula nəticəsində hüceyrə dəyişikliyində avtomatik olaraq xüsusi bir kodun icrasına kömək edə bilər, belə edin:

1. Istifadə etmək istədiyiniz hesabat sekmesini sağa vurun və sonra seçin Kodları baxın kontekst menyusundan, açıldı Proqramlar üçün Microsoft Visual Basic pəncərədə, boş kodu daxil edin və aşağıdakı kodu yapışdırın:

VBA kodu: Hücredəki dəyişikliklərin nəticəsi olduğunda avtomatik olaraq makroyu çalıştırın:

Private Sub Worksheet_Calculate()
'Updateby Extendoffice
    Dim Xrg As Range
    Set Xrg = Range("C2:C8")
    If Not Intersect(Xrg, Range("C2:C8")) Is Nothing Then
    Macro1
    End If
End Sub

Qeyd: Yuxarıda göstərilən kodda, C2: C8 istifadə etmək istədiyiniz formul hüceyrələrinin üçündür,maco1 avtomatik olaraq çalıştırmak istediğiniz makronun adıdır. Xahiş edirik ehtiyacınızı dəyişdirin.

2. Sonra A2 aralığındaki məlumatlar: B8 formül nəticəsində dəyişikliklərinə səbəb olmaq üçün dəyişdikdə, xüsusi makro kodunuz bir anda tetiklenir.



Təklif olunan Məhsuldarlıq Vasitələri

Office Tab

qızıl star1 Chrome, Firefox və yeni Internet Explorer kimi Excel və digər Office proqramlarına lazımlı sekmeleri gətirin.

Excel üçün Kutools

qızıl star1 Amazing! 5 dəqiqədə məhsuldarlığınızı artırın. Heç bir xüsusi bacarıqa ehtiyac yoxdur, hər gün iki saat saxlaya bilərsiniz!

qızıl star1 300 Excel üçün yeni funksiyalar, Excel çox asan və güclü olun:

  • Veriyi ləğv etmədən Cell / Satır / Sütunları birləşdirin.
  • Bir neçə Çarşaf və İş Kitabını birləşdirin və birləşdirin.
  • Çaprazları müqayisə edin, birdən çox aralığa kopyalayın, mətni tarixə, vahidə və valyuta çevrilməsinə çevirin.
  • Rənglər, Paging Subtotals, Advanced Sort və Super Filter tərəfindən sayılan,
  • Daha çox seçin / Insert / Sil / Mətn / Biçim / Bağlantı / Yorum / Çalışma kitabları / Çalışma Qurğuları Tools ...

Excel üçün Kutools-un ekranı

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Cenk · 7 months ago
    So, what is my macro name. where can i find my macro name?
    • To post as a guest, your comment is unpublished.
      skyyang · 6 months ago
      Hello, Cenk,
      The macro name is the macro code you have inserted into the Excel file, and you just need to change the Macro1 in the above code to your own.
      For example, i insert a code here, and the macro name is: ColorCompanyDuplicates

      Sub ColorCompanyDuplicates()
      'Updateby Extendoffice 20160704
      Dim xRg As Range
      Dim xTxt As String
      Dim xCell As Range
      Dim xChar As String
      Dim xCellPre As Range
      Dim xCIndex As Long
      Dim xCol As Collection
      Dim I As Long
      On Error Resume Next
      If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
      Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
      End If
      Set xRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
      If xRg Is Nothing Then Exit Sub
      xCIndex = 2
      Set xCol = New Collection
      For Each xCell In xRg
      On Error Resume Next
      xCol.Add xCell, xCell.Text
      If Err.Number = 457 Then
      xCIndex = xCIndex + 1
      Set xCellPre = xCol(xCell.Text)
      If xCellPre.Interior.ColorIndex = xlNone Then xCellPre.Interior.ColorIndex = xCIndex
      xCell.Interior.ColorIndex = xCellPre.Interior.ColorIndex
      ElseIf Err.Number = 9 Then
      MsgBox "Too many duplicate companies!", vbCritical, "Kutools for Excel"
      Exit Sub
      End If
      On Error GoTo 0
      Next
      End Sub
  • To post as a guest, your comment is unpublished.
    Tommy · 9 months ago
    What's the point of the condition? It'll always return true...in other words: it'll run without it. This also runs whenever any cells on the sheet change value.
  • To post as a guest, your comment is unpublished.
    Varun · 1 years ago
    Thanks a lot! This really helped me out.
    Is there any method to retrieve the address of the changed cell (with formula i.e Column C in this example).
    Thanks.