PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [حل شده] کمک درنوشتن دستور



khorasan66
2020/01/07, 11:16
سلام به دوستان گرامی
در فایل پیوست
مقدار a1 ثابت است مثلا عدد 10
مقدار a2 می تواند عدد مثبت و یا منفی باشد
و a3 حاصل جمع a1+a2 می باشد .

باید به سلول a2 یکی یکی اضافه یا کم نمود به نحوی که وقتی a3 صفر شد ماکرو متوقف شود .

من تا کنون از دستور loop استفاده نکرده ام لطفا راهنمائی نمائید
حتما باید به سلول a2 یکی یکی اضافه یا کم نمود

majid_mx4
2020/01/08, 00:38
با سلام

متیوانید از کد زیر استفاده کنید .

Sub mir()
If rannge("a2") > Range("a1") Then
For i = 1 To (rannge("a2") - Range("a1"))
Do Until i = Range("a1")
i = i - 1
Range("a2") = i
Loop

If rannge("a2") < Range("a1") Then
For i = 1 To (rannge("a2") - Range("a1"))
Do Until i = Range("a1")
i = i + 1
Range("a2") = i
Loop


End Sub

فقط دکمه مساوی را به تکرار فشار دهید.

موفق باشید میر

khorasan66
2020/01/08, 07:29
با تشکر از پاسخ جنابعالی
دستور پیشنهاد شده عمل نمی نماید املا Range را هم درست کرده ام
ضمنا در فایل پیوستی اولیه من با فشرده شدن متوالی آیکون (( = )) جواب حاصل می شود
من می خواهم با دستور loop با یک بار اجرای ماکرو به جواب برسم
اگر a2=1000 باشد هزار بار فشردن آیکون (( = )) منطقی و ممکن نیست
برای من مهم است که با دستور loop به جواب برسم
راه حل های ریاضی برای این مسئله برایم مطرح نیست
با تشکر

majid_mx4
2020/01/08, 11:56
با سلام

ضمن تشکر

امیدوار این کد مطابق درخواست شما باشد.


Sub Loop2()
Dim i, iK As Integer
If [A2] > [A1] Then
i = [A2]
Do Until i = [A1]
i = i - 1
Loop
[A2] = i
End If

If [A2] < [A1] Then
iK = [A2]
Do Until iK = [A1]
iK = iK + 1
Loop
[A2] = iK
End If
End Sub


پایدار باشید میر