![]() |
Change Rows/Columns in range???
Thanks Tom! And you too Pete! Got it working, and it works great!! :)
"Tom Ogilvy" wrote in message ... yes set rng = Range("A10:A11") i = 1 rng.Resize(rng.rows.count+i,1) will be A10:A12 as a short illustration. With a blank sheet active Sub Tester1() Dim rng As Range Dim rw As Long Dim i As Long, j As Long Cells(1,1) = "i" cells(1,2) = "j" cells(1,3) = "range" rw = 2 Set rng = Range("A10:A11") For i = 0 To 5 For j = 1 To 3 Cells(rw, 1).Value = i Cells(rw, 2).Value = j Cells(rw, 3).Value = rng.Offset(0, j - 1) _ .Resize(rng.Rows.Count + i, 1).Address rw = rw + 1 Next Next End Sub -- Regards, Tom Ogilvy "43fan" wrote in message ... Tom, No problem. I guess I should've explained that I'm virtually a complete beginner at this. I guess not "complete", but pretty close. ;) Anyway, maybe if I understood what is happening, I could tailor this to my needs easier. The resize command, is this what it's doing? If the range initially is "A10:A11", when it resizes it(and i = 1), is the range now "A10:A12"? Also, in looking more at how the code is written, I'm moving across columns in one loop(the inside loop) and down rows in the other(outside loop). So I'm thinking that in the inside loop I have to change the column setting, in the outside loop is where I need to add to the rows in the range. Unfortunately, within the inside loop is where I "print" the data. I wish I could explain this better, sorry. :( "Tom Ogilvy" wrote in message ... My fault for leaving out the count part - apologies rng1 and rng2 will never change you can see what they refer to with address set rng1 = rng1.resize(rng1.rows.count + i, 1) will not work for what you originally described because it redefines rng1 on each loop dim rng1 as Range Dim rng2 as Range dim i as long Dim var as Variant set rng1 = Range("B13:B14") set rng2 = Range("A13:A14") for i = 0 to 10 var = application.Forecast(0,rng1.resize(rng1.rows.count + i,1), _ rng2.resize(rng2.rows.count + i ,1)) msgbox rng1.resize(rng1.rows.count + i, 1).Address & " " & _ rng2.resize(rng2.rows.count + i, 1).Address Next i you want to start with zero so you don't change the ranges before you do your first forcast. if you want to change columns, then you will have to introduce an offset - it is unclear why/when you would change columns. -- Regards, Tom Ogilvy "43fan" wrote in message ... Pete, Thanks, I think the first one will work, I just need to adjust the starting range to accomodate it. How can I then see(in debug mode) the values of rng1 and rng2? In order to know if they're referencing the proper cells or not? I've tried putting my mouse cursor over them and even tried "printing" them in the immediate window, neither works. The mouse gets nothing, and the "print" results in a type mismatch error. Thanks! Shawn "Pete McCosh" wrote in message ... Shawn, try set rng1 = rng1.resize(rng1.rows.count + i, 1) Although this will probably have the effect of increasing by one row on the first pass, two on the second and so on, so maybe: set rng1 = rng1.resize(rng1.rows.count + 1, 1) would be better? Cheers, Pete -----Original Message----- I'm running the Forecast() function, which uses ranges in order to process. I initialize two variables, rng1 and rng2 to type range, then set them equal to the starting range I want. I'm running it in a nested loop, based on (a) - how many data sets and (b) how many points of data within each set. I need to increase the range with each data set, as well as change the column it's looking at for each data point. Say I'm starting with this: rng1 = "B13:B14" rng2 = "A13:A14" Running var1=application.Forecast(0,rng2,rng1) works fine, but of course I get the same value for all data points/all data sets. I can't figure out how to get the ranges to resize, using rng1.Resize (rng1.rows + i,1) gives me a type mismatch error. Help???!!! Thanks! Shawn . |
All times are GMT +1. The time now is 10:22 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com