(col1 col2 col3)
OAS01 0 74
OAS02 0 55
OAS03 0.5 73
OAS04 24
OAS05 21
OAS06 20
OAS07 0 74
OAS08 0 52
OAS09 1 30
OAS01 81
我想通过删除整个行和所有有任何空单元格的行来获得如下输出
(col1 col2 col3)
OAS01 0 74
OAS02 0 55
OAS03 0.5 73
OAS07 0 74
OAS08 0 52
OAS09 1 30
我试过,但工作不好
[num, text, a] = xlsread('data.xlsx');
for i = 1:size(data,1)
if isnan(num(i,1))
a(i,:) =[];
num(i,:) =[];
else
a(i,:) =a(i,:);
num(i,:) =num(i,:);
end
end
xlswrite('newfile.xlsx', a);
更优雅的方式:
T = {'a','b';'','c';'d','e'}
>> T =
'a' 'b'
'' 'c'
'd' 'e'
T(any(cellfun(@isempty,T),2),:) = []
>> T =
'a' 'b'
'd' 'e'
----编辑----
OP说它不起作用,所以我检查了,这是因为空单元格被xlsread函数加载为NAN,所以这行应该可以修复它:
[num, text, a] = xlsread('data.xlsx');
a(any(cellfun(@(x) any(isnan(x)),a),2),:) = [];
我是新的VBA和不是非常熟练的编程,所以我希望在这里得到一些帮助。 提前谢了。
我有一个,它是通过解析一些excel电子表格创建的。具有空单元格的列。例如,下面是该列的频率输出,32320条记录缺少租户的值。 我试图删除缺少租户的行,但是选项无法识别缺少的值。 该列具有数据类型"Object"。这案子是怎么回事?如何删除租户失踪的记录?
我需要VBA代码,可以删除整个行,如果两个单元格(可以在工作表的任何列)包含一个特定的文本。 我有一个每日生成的打印报告文件,该文件中的文本(在一个非特定列中)和也在任何列中。 #代表一个数字,所以在我的文件中可以有0-99999…,这取决于打印了多少页。 该文件包含从到的列和数千行,和文本可以位于每列上,具体取决于打印作业。 我希望VBA查看整个工作表,如果一行包含和,则应该删除整行。
我试图创建一个脚本,如果单元格包含但不完全匹配条件,它将自动删除该行。例如,如果单元格包含gmail.com,脚本将删除行,作为较大电子邮件的一部分 这两封yahoo电子邮件将被保存,因为它们不符合条件。但是,我不确定在编写脚本时使用适当的条件听写。这是我到目前为止所拥有的。 我会把a==,但这只会删除与gmail完全匹配的行。com。我将使用什么来代替==使其本质上成为一个包含条件的文本?
我一直试图创建一个宏来格式化从特定外部源复制的表,问题是,一些单元格似乎从右向左填充,剩余的空间向左填充空格:
假设我有一张工作表--第一张--有5000多行(例如,每行“a”-“H”)。 在另一个工作表--第2号--中,我有一个“to-remove-list”--一个包含400个值的单列“a”,每个值包含字母数字字符串(例如:xxx1234)。 如果第'e'列包含“to-remove-list”(第2页的第'a'列)中的任何值,则必须删除第1页中的每一行。 删除整行,我的意思是删除该行并向上移动(不离开空