با عرض سلام. دوستان من یک برنامه ای با vba اکسل نوشتم یادم رفته بود یک ستون رو بعد از ستون E وارد کنم حالا اگر یک ستون کنارش insert کنم کل آدرس دهی ستون ها و فرمول ها عوض میشود، راه حل بهتری برای این مورد دارید یا باید دوباره از اول برای ستون ها جدید آدرس دهی کنم؟
ایجاد یک ستون جدید
Collapse
این تاپیک قفل است.
X
X
-
با سلام
دوست عزیز البته شما بایدتغییراتی در کد خود بدهید ولی یکبار برای همیشه و با تغییر ستون دیگر نیازی به تغییر دستورات نیست اگر آدرس دهی شما بر مبنای سر تیتر ستون باشد در دستور زیر نام ستون مورد نظر Name در نظر گرفته شده است حال با پیدا کردن آدرس آن میتوانید (بطور خلاصه با بردگرداندن آدرس هدر تغییرات مورد نظر را در آن محدود اعمال میکنید و یا از آدرس آن برای دیگر تغییرات استفاده میکند .) بطور اتوماتیک دستورات و تغییرات را اعمال میکنند.
کد:Sub columnAddress() Dim ws As Worksheet Dim lRow As Long Dim aCell As Range, rng1 As Range '~~> ست کردن شيت مربوطه Set ws = ThisWorkbook.Sheets("Sheet1") With ws '~~> دررديف دنبال چه چيزي بگردد Set aCell = .Range("A1:Z1").Find("Name") '~~>اگر پيدا کرد If Not aCell Is Nothing Then '~~> اگر آن ستون داري يک رديف یا محتوي بيشتر از یک ردیف باشد lRow = .Range(Split(.Cells(, aCell.Column).Address, "$")(1) & .Rows.Count).End(xlUp).Row If lRow >= 1 Then '~~> ست کردن محدود مربوطه Set rng1 = .Range(aCell.Offset(1), .Cells(lRow, aCell.Column)) '~~> برگرداندن آدرس مورد نياز ' Debug.Print rng1.Address MsgBox rng1.Address End If End If End With End Sub
Last edited by majid_mx4; 2017/06/02, 03:09.
کامنت