Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm trying to programmatically delete columns based on a criteria.
If A1=1 and B1=2, do nothing. If A1=1, B1<2, C1<2 and D1=2, delete columns B:C. I could test with the following: If Application.Match(1, Range("Sheet1!$1:$1"), 0) - Application.Match(2, Range("Sheet1!$1:$1"), 0) 1 Then But I don't see how to form: .Columns("B:C").Delete - Ronald K. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Sub delcolbandcif() If Application.Match(2, Rows(1), 1) - _ Application.Match(2, Rows(1), 0) 1 Then _ Columns("b:c").Delete End Sub On Oct 18, 1:21*pm, "kittronald" wrote: * * I'm trying to programmatically delete columns based on a criteria.. * * If A1=1 and B1=2, do nothing. * * If A1=1, B1<2, C1<2 and D1=2, delete columns B:C. * * I could test with the following: * * * * If Application.Match(1, Range("Sheet1!$1:$1"), 0) - Application.Match(2, Range("Sheet1!$1:$1"), 0) 1 Then * * But I don't see how to form: * * * * *.Columns("B:C").Delete - Ronald K. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Don,
Thanks for the quick response. The problem I'm running into is populating the range in Columns("...").Delete, which can vary in its value. The range could be "B:B", "B:E", etc. - Ronald K. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Ronald,
Am Tue, 18 Oct 2011 15:24:05 -0400 schrieb kittronald: The problem I'm running into is populating the range in Columns("...").Delete, which can vary in its value. The range could be "B:B", "B:E", etc. try: LCol = Cells(1, Columns.Count).End(xlToLeft).Column For i = LCol To 2 Step -1 If Cells(1, i) < 2 Then Columns(i).Delete End If Next Regards Claus Busch -- Win XP PRof SP2 / Vista Ultimate SP2 Office 2003 SP2 /2007 Ultimate SP2 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Claus,
Is there a way to determine the range and perform the deletion in one pass ? - Ronald K. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Claus,
Vielen dank ! I'm learning a lot from you guys ! - Ronald K. |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Oct 18, 2:24*pm, "kittronald" wrote:
Don, * * Thanks for the quick response. * * The problem I'm running into is populating the range in Columns("...").Delete, which can vary in its value. * * The range could be "B:B", "B:E", etc. - Ronald K. Sub delcolbandcifSAS() lc = Application.Match(2, Rows(1), 1) fc = Application.Match(2, Rows(1), 0) If lc - fc 1 Then Columns(fc).Resize(, lc - fc).Delete End Sub |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Don,
Got it ! Sub Delete_Excess_Columns() Dim a, z As Integer a = Application.Match(1, Rows(1), 0) z = Application.Match(2, Rows(1), 1) If z - a 1 Then Columns(a + 1).Resize(, z - (a + 1)).Delete End Sub Is the reason you don't have to type "End If" because ELSE wasn't used ? Is As Integer the right data type and is it really necessary to specify it ? Now I know how to use the Range.Resize property. Thanks a lot ! - Ronald K. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Deleting columns | Excel Discussion (Misc queries) | |||
Adding Columns, Then deleting old columns | Excel Discussion (Misc queries) | |||
Combining Text from 2 Columns into 1 then Deleting the 2 Columns | Excel Worksheet Functions | |||
Deleting Columns to the right - 1 | Excel Programming | |||
Deleting Columns | Excel Programming |