Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 使用For从单元格中移动_String_Excel_Vba_Variables_For Loop - Fatal编程技术网

String 使用For从单元格中移动

String 使用For从单元格中移动,string,excel,vba,variables,for-loop,String,Excel,Vba,Variables,For Loop,在我的宏中,我需要的是:从一个工作表(例如:W1)中选择一个完整的单元格,然后将结果粘贴到另一个工作表(W2)单元格(A1)中,然后选择W1的另一列,求和并粘贴到A2中,依此类推。 我写的是: Sub SumasTbf() Dim Seleccion As Range Dim Suma Worksheets("hoja2").Activate Set Seleccion = Range(ActiveSheet.Range("B1"), ActiveSheet.Range("B1").

在我的宏中,我需要的是:从一个工作表(例如:W1)中选择一个完整的单元格,然后将结果粘贴到另一个工作表(W2)单元格(A1)中,然后选择W1的另一列,求和并粘贴到A2中,依此类推。 我写的是:

Sub SumasTbf() 
Dim Seleccion As Range 
Dim Suma 


Worksheets("hoja2").Activate 
Set Seleccion = Range(ActiveSheet.Range("B1"), ActiveSheet.Range("B1").End(xlDown)) 
Suma = WorksheetFunction.Sum(Seleccion) 
Worksheets("hoja3").Range("F1") = Suma
现在我想用a来移动B1到C1的范围,但我不知道如何移动B到C,你能帮我吗!在处理行的情况下,它将是“B”和x??(另一个问题)。。。等待回答

这应该可以:

Sub SumasTbf()
Dim myRange As Range
Dim Suma As Long, lastRow As Long, i as Long

For i = 2 To 10 'This will loop from column B to J
    With Worksheets("hoja2")
        lastRow = .Cells(1, i).End(xlDown).Row
        Set myRange = .Range(.Cells(1, i), .Cells(lastRow, i))
        Suma = WorksheetFunction.Sum(myRange)
    End With

    'Now, let's record the sum in A1, then A2, etc.
    ' use i-1 since i starts at 2
    Worksheets("hoja3").Cells(i - 1, 1) = Suma
Next i
End Sub
主要是,当需要在范围上迭代时,可以使用
范围(单元格([row#]、[column#])、单元格([row#]、[column#])
。然后只需使用一个变量来循环(
i


此外,我还更改了
选择
,因为我假设VBA使用活动选择的方式也是如此。我把它改成了
myRange
,这样就不会有潜在的混乱了。

你在做什么?微软Excel?