我有一张桌子,上面有我应用自动过滤器的产品,我得到了过滤后的产品
Set tbl = Worksheets("FOR EXPORT").ListObjects("MyTable")
'SET AUTOFILTER
tbl.Range.AutoFilter Field:=3, Criteria1:="<>*ERROR*"
我要过滤产品,将它们复制到数组中,以便将其导出为CSV
所以我尝试选择
之类的过滤产品Dim VisRng As Range
' set the new Range object to the visible cells of `tbl.Range`
Set VisRng = tbl.Range.SpecialCells(xlCellTypeVisible)
' copy only the visible cells in range to array
tblArr = VisRng.Value
如果我添加tbl.Range.SpecialCells(xlCellTypeVisible).select
,它将要求一个对象
即使有大约362种过滤产品,我也只能得到196
如何将过滤后的数据复制到变量tblArr
?为什么我的产品减少了?
答案 0 :(得分:0)
您过滤的数据不是连续的。如果您过滤数据,并且firt和上次过滤的行之间存在隐藏行,那么数据就不是连续的。
如果在过滤之前先对 <activity
android:name=".SignatureActivity"
android:label="@string/title_yourTitle"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"/>
上的数据进行排序,那么您将拥有需要放入数组中的连续范围。
答案 1 :(得分:0)
另一个解决方案是将VisRng.Copy
并将值粘贴到新的工作簿/工作表中。然后将该工作表导出/保存为CSV。复制/粘贴不连续的范围将使其在目标位置连续。
示例:
Dim NewWB As Workbook 'create new workbook
Set NewWB = Application.Workbooks.Add
VisRng.Copy
NewWB.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues
NewWB.SaveAs Filename:="C:\Temp\MyFile.csv", FileFormat:=xlCSV
NewWB.Close SaveChanges:=False