VBA - 从一张纸上绘制数字并从另一张纸中获取数据

时间:2014-10-23 21:06:12

标签: excel vba excel-vba

我正在尝试编写一个VBA来将数据从一个工作表绘制到另一个工作表,但我仍然坚持使用某些东西。 我只需要原始工作表中的一些数据(让我们称之为s1),特别是我需要两行之间的数据。 我把这些行写在另一张表(s2)中,所以我确切地知道我需要哪些行来自数据。正如您所料,我需要多行,我需要数据。

现在问题是我正在尝试编写一个能够在我的行表(s2)中查找这些行的VBA,然后转到包含所有原始数据的表(s1),并且然后将两行之间的数据绘制成第三张(s3)。 我无法用s2中的数字绘制(似乎无法确定如何告诉它这两行之间我需要数据,但是从另一张表中),并且当前必须输入我自己的行号,这真的很乏味,因为数据集很大!

任何帮助将不胜感激! 谢谢!

2 个答案:

答案 0 :(得分:0)

您是否尝试过.find选项。

您可以使用以下内容:

findrow = w1.Cells.Find(what:=" Content",MatchCase:= False).Row

更广泛的例子可以帮助

答案 1 :(得分:0)

将问题分解为更小的步骤。

您可以使用单元格引用在工作表上指定值:

Sheets("S1").Cells(iRow, iCol) = Value
'or 
Sheets("S3").Cells(2, 10) = Sheets("S2").Cells(2, 10)

您可以使用表格(“S1”)。范围(“J”和iRow)或范围(“J2”)。

如果某些事情需要满足某些条件,请使用If语句。

If (Value 1 < Value 2) Then 
    Sheets("S3").Cells(2, 10) = Sheets("S2").Cells(2, 10)
Else
    Sheets("S3").Cells(2, 10) = Sheets("S1").Cells(2, 10)
End If

如果没有更多关于您用于确定要复制哪些行以及从哪个表中选择的特定选项的信息,则很难说。但是你可以通过循环来小批量或复制整个范围。

Dim iRow As Integer

'This would copy all the data from Sheet("S1").Range("J1:J20) to Sheet "S3".
For iRow = 1 to 20
    Sheets("S3").Cells(iRow, 10) = Sheets("S1").Cells(iRow, 10)
Next iRow

您可以在循环内的每一行中插入一个If语句,以查看是否符合某个条件,然后决定在哪个工作表中复制数据。