2016-02-10 133 views
1

我想获取某个单元格的值并将其存储为变量。然后将另一个区域中的另一个单元格的值设置为该变量。然后移动到单元格。当行中的所有单元格都被捕获后,我想移动到下一行并重新开始第一个单元格和第一个变量。我不知道如何移动到下一个单元格,然后将新范围中的值设置为变量。这里是我到目前为止获取一个单元格的值,存储一个变量,然后下一个单元格,下一行(Excel)

Dim rng As Range 
Dim row As Range 
Dim cell As Range 
Dim card1 As String 
Dim card2 As String 
Dim card3 As String 
Dim card4 As String 
Dim card5 As String 
Dim valueRng As Range 

Set rng = Range("A2:D4") 
Set valueRng = ("F2:I4") 


For Each row In rng.Rows 
For Each cell In row.Cells 
card1 = cell.Value 
'Set first variable 
'Code here for setting value of for first cell in valueRng 

'Move to second cell 
'get value 
'set variable card2 
'Set value of second cell in valueRng 

Next cell 
Next row 
+4

你知道你可以简单地; 'Range(“F2:I4”)。Value = Range(“A2:D4”)。Value' –

+0

但我想要一个变量来改变第二个范围的值。我会将第一个范围的值作为“得分”,然后将得分放在第二个范围内。我只是想在做这个计算之前把重点放在这个问题上 – mcadamsjustin

回答

2

使用行和列计数器,而不是For each

Dim rng As Range 
Dim row As Range 
Dim cell As Range 
Dim card1 As String 
Dim card2 As String 
Dim card3 As String 
Dim card4 As String 
Dim card5 As String 
Dim valueRng As Range 
Dim x as long 
Dim y as long 

Set rng = Range("A2:D4") 
Set valueRng = Range("F2:I4") 


For x = 1 to rng.Rows.Count 
    for y = 1 to rng.Columns.Count 

card1 = rng.cells(x, y).Value 
'Set first variable 
'Code here for setting value of for first cell in valueRng 
valueRng.Cells(x, y).Value = card1 

Next y 
Next x 

注意,有从另一个填充一个数组的简单得多的方式时,他们具有相同的尺寸和形状。

+0

这很有效。另外,我的代码不正确,应该是'Set valueRng = Range(“F2:I4”)'。关于填充相同大小和形状的数组的更简单的方法,正如我提到的@Scott,我想为该值分配一个分数,然后将分数放在第二个范围内。我只是想在做这个计算之前把重点放在这个问题上 – mcadamsjustin

相关问题