2015-04-01 83 views
0
colname = Split(Cells(, i).Address, "$")(1) 
Lastrow = .Cells(.Rows.Count, colname).End(xlUp).Row 
ws.("?" & Lastrow).Copy ws1.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) 

i是一个数字,它被转换为列名。我需要一个范围从数字4开始,例如,如果我= 1,我需要范围(“A4”&拉斯特罗)。我有LASTROW,我可以得到A,但我怎么让它A4写作范围在excel中。

+1

'范围( “A4” 与LASTROW)'你的意思是'范围( “A4:A” &LASTROW)' – 2015-04-01 16:20:05

回答

1
Dim ws as Worksheet 
Dim Row as integer 
Dim Col as integer 
Row = 4 
Col = 1 
Range(Cells(Row, Col), cells(LastRow, Col)) 
ws.Range(Cells(Row, Col), Cells(LastRow, Col)) 
+0

WS。 Range(Cells(4,i)&Lastrow).Copy ws1.Cells(Rows.Count,“A”)。End(xlUp).Offset(1,0)。这不起作用 – Jain 2015-04-01 16:25:02

+0

不,不会期望它。这也不是我在我的答案中提出的。如果你打算以这种方式使用它,你需要Range(** Cells **(),** Cells **())。您需要使用每个参数的'Cells()'引用来指定范围的左上角和右下角。在那里处理'&Lastrow'可能会引发错误。 – FreeMan 2015-04-01 16:28:43

+0

对不起,但我还有一件事要问。为什么使用这个fromat的ws.Range在没有工作的情况下不工作,意味着它认为活动工作表。 – Jain 2015-04-01 18:08:25