EXCEL VBA 数组下边界总是固定的数值如何自动修改
问题:数组的 UBound(arr) -- '这个数值得到一次值后不会按实际改变,如何处理。怎么上传附件?
方便请联系QQ1104859173
Private Sub CommandButton21_Click()
Dim arr, arrtemp
Dim i%, j%, s% '数组用变量
'************************************** '表三丙汇总数据
Sheets("表三丙").Activate
arr = Sheets("表三丙").Range("A1:L" & [c3000].End(xlUp).Row)
MsgBox UBound(arr) '这个数值不会按实际改变,显示1543,实际是1422
ReDim arrtemp(1 To UBound(arr), 1 To 12)
s = 0
For i = 8 To UBound(arr) '数据区域从第8行开始'
If IsNumeric(arr(i, 5)) = True And arr(i, 5) > 0 Then '数量列为数值型且值>0的行选中
s = s + 1
For j = 2 To 12 'A列为原表序号不选择
arrtemp(s, j) = arr(i, j)
arrtemp(s, 1) = s '这列为新编序号
Next
End If
's 取得有效数据行数
Next
Sheets("表三丙").Range("a1675").Resize(s, 12) = arrtemp '从数组粘贴值
'*************************************
Sheets("表三乙").Activate
arr = Sheets("表三乙").Range("A1:L" & [c3000].End(xlUp).Row)
MsgBox UBound(arr) '这个数值不会按实际改变,显示1683,实际是1543
ReDim arrtemp(1 To UBound(arr), 1 To 12)
s = 0
For i = 8 To UBound(arr) '数据区域从第8行开始'
If IsNumeric(arr(i, 5)) = True And arr(i, 5) > 0 Then '数量列为数值型且值>0的行选中
s = s + 1
For j = 2 To 12 'A列为原表序号不选择
arrtemp(s, j) = arr(i, j)
arrtemp(s, 1) = s '这列为新编序号
Next
End If
's 取得有效数据行数
Next
Sheets("表三乙").Range("a1516").Resize(s, 12) = arrtemp '从数组粘贴值
End Sub