Arrays 是否可以在excel vba数组中删除行或列
从excel中的选定内容创建数组时,会忽略某些行是隐藏的这一事实 例如,如果在列A、B和C中有数据,而列B是隐藏的,则数组仍有3列和4行 有什么办法可以做到这一点吗Arrays 是否可以在excel vba数组中删除行或列,arrays,excel,vba,Arrays,Excel,Vba,从excel中的选定内容创建数组时,会忽略某些行是隐藏的这一事实 例如,如果在列A、B和C中有数据,而列B是隐藏的,则数组仍有3列和4行 有什么办法可以做到这一点吗 创建数组后从数组中删除列或行,或者。。。即删除B列 告诉数组时只考虑非隐藏列;S是形成的(所以它只考虑列A,C.)。 一些代码来说明我想要什么 dim v作为变体 范围(“A2:C4”)。选择 v=选择 选择现在是3列宽4行深。我只想要选择中没有隐藏的两列 我能想到的唯一两种方法是 (1) 从原始选择中删除某些内容 (2) 首先不要
正如评论所建议的那样,更多的信息将使这个答案更适合你。你可以通过
- 创建临时工作表
- 将“可见”单元格复制到临时工作表
- 将单元格读入vba数组
- 删除临时工作表
Option Explicit
Sub arrUnHidden()
Dim R As Range
Dim V As Variant
Dim wsTemp As Worksheet
Set R = Worksheets("Sheet2").Range("A1", Cells(Rows.Count, "C").End(xlUp))
Worksheets.Add
ActiveSheet.Name = "Temp"
Set wsTemp = Worksheets("Temp")
R.SpecialCells(xlCellTypeVisible).Copy wsTemp.Cells(1, 1)
V = wsTemp.UsedRange
Application.DisplayAlerts = False 'suppress message when deleting a sheet
Worksheets("temp").Delete
Application.DisplayAlerts = True
End Sub
你能添加一些代码来说明吗?