我正在尝试将D列中的值另存为数组,以便在删除自动过滤器后检查与D列中的数组匹配的内容并删除这些行。
我无法按数组过滤。我相信这是因为数组是由数字组成的,因为D列都是ID号,而不是字符串。
现在,我在Selection.Value = PackRemov部分的下标超出范围。
With ActiveSheet
Set rNumberColumn = .Range("N:N")
rNumberColumn.AutoFilter 1, Criteria1:="<>"
PackRemov = .Range("D:D").Value
ActiveSheet.AutoFilterMode = False
For X = 1 To LRD
Range("D" & X).Select
If Selection.Value = PackRemov(i) Then
Selection.EntireRow.Delete
End If
Next X
如果这不起作用,那么有没有办法我可以“查找”以匹配数组中的内容并删除那些行?
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
使用范围VBA创建数组时,如果范围是按列(例如A1:A5),它将创建多维数组而不是单个数组。
try:
torch.bmm
except AttributeError:
# whatever you wanted to do if it doesn't exist
else:
# whatever you wanted to do with torch.bmm
此外,在删除行时,您想向后循环,因为如果从1到X滚动,则在示例行5上并删除它,则行6变为行5,但是由于您已经处理了行5您将其移至6(即7),因此每次删除一个行都跳过了1行。您必须执行 For X = 1 To LRD
Range("D" & X).Select
If Selection.Value = PackRemov(i, 1) Then 'This should fix this portion
Selection.EntireRow.Delete
End If
Next X
来解决此问题。
P.S。如果将其包含在循环中,则也可以摆脱 For X = LRD to 1 Step -1
行。删除 Range("D" & X).Select
,然后执行 Selection.Value
和 Range("D" & X).Value
答案 1 :(得分:1)
如评论中所述,.AutoFilter首选一个看起来像数字的文本数组,以便CStr对该数组中的每个元素进行操作。
let vm = new Vue({
el: "#container",
data: {
newPerson: {
firstName: '',
lastName: ''
}
},
methods: {
sendIdentity: function() {
let personForm = vm.toFormData(vm.newPerson);
const options = {
method: 'POST',
headers: { 'content-type': 'application/form-data' },
data: personForm,
url: 'phpfile.php',
};
axios(options)
.then( function(response) {
console.log(response.data)
})
.catch(err => console.log(err);
},
toFormData: function(obj) {
let formData = new FormData();
for(let key in obj) {
formData.append(key, obj[key]);
}
return formData;
}
}
});