全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
1413 4
2013-04-14
要处理八个市土地类型的数据。。具体是筛选出某地类,然后将该市各县的该地类面积求总和,填入另一个表。。由于数据量较大,一个市细分为约十几个地类,所以想用编程来减少工作量。但是程序貌似有语法错误,求指点Sub culc()        Dim myRow As Integer
        myRow = 4

        Sheets(1).Active
        Sheets(2).Cells(myRow, 1) = SumIf(G, "有林地", W)
        Sheets(2).Cells(myRow, 2) = SumIf(G, "灌木林地", W)
        Sheets(2).Cells(myRow, 3) = SumIf(G, "茶园" OR "果园" OR "其他林地" OR "其他园地", W)
        Sheets(2).Cells(myRow, 7) = SumIf(G, "水田", W)
        Sheets(2).Cells(myRow, 8) = SumIf(G, "旱地", W)
        Sheets(2).Cells(myRow, 9) = SumIf(G, "城市", W)
        Sheets(2).Cells(myRow, 10) = SumIf(G, "村庄", W)
        Sheets(2).Cells(myRow, 11) = SumIf(G, "采矿用地" OR "风景名胜及特殊用地" OR "港口码头用地" OR "机场用地" OR "建制镇" OR "设施农用地" OR "人工建筑用地" OR "铁路用地", W)
        Sheets(2).Cells(myRow, 14) = SumIf(G, "裸地", W)
        Sheets(2).Cells(myRow, 16) = SumIf(G, "河流水面" OR 沟渠, W)
        Sheets(2).Cells(myRow, 17) = SumIf(G, "湖泊水面" OR "坑塘水面" OR "水库水面", W)
        Sheets(2).Cells(myRow, 18) = SumIf(G, "内陆滩涂" OR "沼泽地", W)
        Sheets(2).Cells(myRow + 1, 1) = Sheets(8).Cells(myRow, 1) + Sheets(8).Cells(myRow, 2) + Sheets(8).Cells(myRow, 3)
        Sheets(2).Cells(myRow + 1, 4) = SumIf(G, "人工牧草地" OR "天然牧草地" OR "其他草地", W)
        Sheets(2).Cells(myRow + 1, 7) = Sheets(8).Cells(myRow, 7) + Sheets(8).Cells(myRow, 8)
        Sheets(2).Cells(myRow + 1, 9) = Sheets(8).Cells(myRow, 9) + Sheets(8).Cells(myRow, 10) + Sheets(8).Cells(myRow, 11)
        Sheets(2).Cells(myRow + 1, 12) = Sheets(8).Cells(myRow, 14)
        Sheets(2).Cells(myRow + 1, 16) = Sheets(8).Cells(myRow, 16) + Sheets(8).Cells(myRow, 17) + Sheets(8).Cells(myRow, 18)
End Sub


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-4-14 21:38:53
关于:SumIf(G, "茶园" OR "果园" OR "其他林地" OR "其他园地", W)
-不知你是否在随便一个单元格有试验过OR在SUMIF公式中能按如上这么用吗?
-还有G,W是什么?没有见到有在此程序中定义过。如果你指的是第G列,那么应该用G:G而不是G
建议你得先试试单元格能接受这么个一个公式,再编程序。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-14 21:40:51
TaskShare 发表于 2013-4-14 21:38
关于:SumIf(G, "茶园" OR "果园" OR "其他林地" OR "其他园地", W)
-不知你是否在随便一个单元格有试验过 ...
另外Sheets(2).Cells(myRow, 1) =SUMIF(...),也有问题,应该考虑使用
Sheets(2).Cells(myRow, 1).formula ="=SUMIF(...)"
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-18 19:28:04
谢啦,我发现SumIf(G, "有林地", W)这里错了,在excel里用函数和编程不一样,要改成SumIf(“G:G”, "有林地",“ W:W”)。。还有貌似要写成function.sumif。。还是感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-5 18:21:04
可以用sumifs函数。
Book13.xlsx
大小:(12.91 KB)

 马上下载


如果没有固定格式的话,用数据透视表结合分组,实现起来更为简单。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群