+ -
当前位置:首页 → 问答吧 → vba中关于数组!把动态单元格内容写到变化的区域!

vba中关于数组!把动态单元格内容写到变化的区域!

时间:2011-08-05

来源:互联网

举例说明!
几行数据是不定的,列是固定的.现在希望用CELLS把单元格内容写到数组中,然后把数组赋予到RANGE.
如果是结果标志只有一行,那么找找这个行的行号码,然后把(假如是第2行)
结果就是
Cells(2, 4),Cells(2,7),Cells(2, 8),Cells(2, 9),Cells(2, 11),Cells(2, 12),Cells(2, 21)以上数据写到一行七列的数组.


如果找到标志是2,是第2行和13行
那就需要2行7列数据写到数组.
结果为
Cells(2, 4),Cells(2,7),Cells(2, 8),Cells(2, 9),Cells(2, 11),Cells(2, 12),Cells(2, 21)
Cells(13, 4),Cells(13,7),Cells(13, 8),Cells(13, 9),Cells(13 11),Cells(13, 12),Cells(13, 21)
这个几行是程序自动判断出来,
是几就是几行7列,请问VBA中这个数组怎么写的

作者: yumen3   发布时间: 2011-08-05

不连续区域“把数组赋予到RANGE”估计行不通。

作者: Zamyi   发布时间: 2011-08-05

不连续区域我可以循环读出来写到这个数组中,然后ARR到RANGE,就是不知道怎么做啊,呵呵

作者: yumen3   发布时间: 2011-08-05

Sub FindFlag()
Dim i, j, tag As Integer, Sht As Worksheet
Dim what As String, ang As Range

On Error Resume Next
Set Sht = Worksheets("Mat-Fee")
If Err <> 0 Then
    Exit Sub
Else
   Application.ScreenUpdating = False
   
   Sht.Select
   tag = Application.SumIf(Sht.Range("e2:e65536"), "1", Sht.Range("e2:e65536"))
   
   
   
   If tag = 0 Then
      MsgBox "No Material Is Selected,Pls Check!"
      Worksheets("Mat-Fee").Select
   Else
         
     For i = 0 To [E65536].End(xlUp).Row

        If Cells(i, 5) = "1" Then
            
          MsgBox Cells(i, 4)
        
        End If
            
    Next i
    Worksheets("Input").Select
   
    Application.ScreenUpdating = True

End If
End If

End Sub


MsgBox Cells(i, 4)
就是其中一个值,我的想法是写到一个数组,然后把数组写到RANGE就好了.不知道可行否

作者: yumen3   发布时间: 2011-08-05

谢谢分享 非常好

作者: chaoliu   发布时间: 2011-08-05

没太明白lz的意思,哪些行是满足要求的需要筛选出来赋值给数组的?

作者: fabregasonline   发布时间: 2011-08-05

是的,大概是这个意思,我发图上来就知道什么意思了.见下图,
有一个FLAG列,只要这个列是1的数据就把这个一行7列我需要的字段写到我的数组中.

附件

111.jpg(54.93 KB)

2011-8-5 15:14

作者: yumen3   发布时间: 2011-08-05

上面的图大家看到了是有2个1,,所以就是2行7列,但是7列的数据是不连续的,是这个行某几个字段才是我需要的..然后我需要把这些数据写到这个表的区域中.

附件

222.jpg(32.23 KB)

2011-8-5 15:17

作者: yumen3   发布时间: 2011-08-05

上面的代码是增加材料的这个按纽的一个功能,点下去就到这个MAT-FEE把标志为1的数据都插入到上面图片,2普通材料下面的行中,而且这个行是变化的..所以,,我想大家应该明白了把,,,
谢谢大家的帮助啊。

作者: yumen3   发布时间: 2011-08-05

相关阅读 更多