نویسنده موضوع: مقايسه دو شيت با هم با VBA  (دفعات بازدید: 1365 بار)

afshin3a

  • کاربر انجمن
  • **
  • ارسال: 52
  • جمع امتیازها: +1/-0
مقايسه دو شيت با هم با VBA
« : 6 اسفند 1394 - 16:22 »
سلام! مي خواهم رينج C11 تا ‍C30 از sheet2 با رينج D2 تا D21 از Sheet20 با هم مقايسه شوند. اگر تمام مقادير متناظر و برابر نباشند، مسيج باكسي مبني بر يكسان نبودن مقادير بدهد. چه ماكرويي بايد بنويسم؟
مثال :شيت 2:
ali
reza
farzaneh

شيت 20
reza
farzaneh
ali

تحت شرايط بالا بايد خطا بدهد و اگر به شكل زير هم باشد باز هم بايد خطا بدهد:

Sheet2:
ali
reza
farzaneh

Sheet20:
arash
reza
farzaneh

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

خبر: کامل ترین کتاب توابع و فرمول نویسی در اکسل ترجمه تیم فرساران


Iranweld

  • کاربر فعال
  • ***
  • ارسال: 191
  • جمع امتیازها: +95/-2
پاسخ : مقايسه دو شيت با هم با VBA
« پاسخ #1 : 6 اسفند 1394 - 20:20 »
با سلام

ماکرو ذیل را تست بفرمایید

Sub test()

j = 0

For i = 2 To 21

If Sheet20.Range("d" & i) = Sheet2.Range("c" & i + 9) Then

j = j + 1

End If

Next

If j = 20 Then

MsgBox "ok"

Else

MsgBox "not ok"

End If

End Sub

ahmad85

  • کاربر تازه‌وارد
  • *
  • ارسال: 1
  • جمع امتیازها: +0/-0
پاسخ : مقايسه دو شيت با هم با VBA
« پاسخ #2 : 7 اسفند 1394 - 00:19 »
تشکر

afshin3a

  • کاربر انجمن
  • **
  • ارسال: 52
  • جمع امتیازها: +1/-0
پاسخ : مقايسه دو شيت با هم با VBA
« پاسخ #3 : 10 اسفند 1394 - 16:56 »
با سلام

ماکرو ذیل را تست بفرمایید

Sub test()

j = 0

For i = 2 To 21

If Sheet20.Range("d" & i) = Sheet2.Range("c" & i + 9) Then

j = j + 1

End If

Next

If j = 20 Then

MsgBox "ok"

Else

MsgBox "not ok"

End If

End Sub

كاملا درسته! متشكرم! مرسي كه هستين!