如何在excel中用宏处理数据?

数据是几十个国家1960和2000年的经济值,如果这两年中任何一个数据不全(显示NA)就移除这个国家所有数据。如何快速删掉不符合规定的数据?... 数据是几十个国家1960和2000年的经济值,如果这两年中任何一个数据不全(显示NA)就移除这个国家所有数据。如何快速删掉不符合规定的数据? 展开
 我来答
pepe3399
2015-11-07 · 知道合伙人软件行家
pepe3399
知道合伙人软件行家
采纳数:1259 获赞数:5944
1988年毕业于苏州市职业大学计算机专业 从事软件开发5年 从事生产管理20年

向TA提问 私信TA
展开全部

EXCEL本身就具备了很强大的数据处理能力以及图表生成功能。可以应用于各行各业的数据表处理,再加上VBA后就如虎添翼,可以肯定地说一个企业规模在100人以下的所有数据处理的业务(不包含专业的设计范畴,如CAD画图),EXCEL都可以完成。

EXCEL的宏,只要是符合逻辑的要求都可以达到。

给一段代码供参考。这个程序是一个供奶站的应用中的一个功能,负责根据订奶记录的要求,每天自动生成送奶记录。

代码如下:

Sub 自动添加送奶记录()

Call 计算已送数量 '在添加送奶记录前先计算已送数量,防止已经送完的继续产生送奶记录

Dim mYs1, mYs2 As String

Const mYmax = 100 '订奶记录最大数

Dim mYarr1(1 To mYmax, 1 To 10)

Dim I, J, K, L As Integer

Dim mYday As Date

Dim mYweek As Integer

Sheets("管理工具").Select

mYday = Cells(5, 5)

mYweek = Cells(5, 6) '周1~周日 1~6

mYs1 = "订奶记录"

mYs2 = "当天送奶记录"

Sheets(mYs1).Select

I = 2

Do While Len(Cells(I, 1)) > 0

If Cells(I, 7) < Cells(I, 6) And Cells(I, 8) <= mYday Then

'将已送数量小于订货数量 且 起送日期小于当天日期

   For J = 1 To 10

       mYarr1(I - 1, J) = Cells(I, J)

   Next J

End If

I = I + 1

Loop

I = I - 2 'I记录了符合送奶条件的记录数

'生成送奶记录

'step1:将当天送奶记录清除

Sheets(mYs2).Select

Range("A2:F1000").Clear


J = 2 '记录当前行号

For K = 1 To I

    If mYarr1(K, 9) = "每天" Or (mYarr1(K, 9) = "平日" And mYweek <> 6 And mYweek <> 7) Then

       Cells(J, 1) = mYday

       Cells(J, 2) = mYarr1(K, 1)

       Cells(J, 3) = mYarr1(K, 3)

       Cells(J, 4) = mYarr1(K, 4)

       Cells(J, 5) = mYarr1(K, 5)

       Cells(J, 6) = mYarr1(K, 10)

       J = J + 1

    End If


Next K

Sheets("管理工具").Select

End Sub

订奶记录表格如下所示:

根据上面的订奶记录,自动生成下面的送奶记录。

刚下了点小雨
2014-09-22 · TA获得超过335个赞
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:157万
展开全部
你这个问题不需要用到宏:

1,如果没有的数据显示的是NA(而非错误值#N/A)那么:
在最后一列输入=COUNTIF(B2:H2,"NA")
然后拉下去,结果>1的则是表示数据中有为NA的,则可以把大于1的行都删除
2,如果没有的数据显示的是错误值#N/A,那么
在最后一列直接输入=b2&c2&...H2
然后拉一下,结果显示#N/A的则表示中间最少有一个数据不全,可以筛选#N/A的都删掉

以上是假设你的数据在B列到H列...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
85EASY
2014-09-22 · TA获得超过9635个赞
知道大有可为答主
回答量:2580
采纳率:66%
帮助的人:3064万
展开全部
选中所有数据区域
按【F5】
点定位条件
选中空值复选框
确定
开始选项卡单元格中组中单击“删除”按钮(2007及以上版本)
选择 行 命令
完成

如果没有数据的单元格显示的是NA(文本,而非错误值#N/A),先用查找替换,将NA替换为空
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式