|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
我有3列 X 100w行的数据:进度、纬度和变量Z。
我现在需要把他整理成列数=经度,行数=纬度的网格形式,相当于让它填充成0.1°空间分辨率、lon取值70-149.9、lat取值10-59.9的网格中去,最后变成800X500的一个网格,举个例子:lon=71,lat=12,它在网格的坐标就是(11,21)。
原数据输入在sheet1,如图。我筛选了20行数据见附件。输出的网格放到sheet3
我的代码如下:(同一经纬度的反正最后一个覆盖不用在意)
Dim x As Long
Dim y As Long
Dim k As Long
For k = 2 To 1000001
x = Fix((Sheets(1).Cells(k, 1) - 69.9) / 0.1)
y = Fix((Sheets(1).Cells(k, 2) - 9.9) / 0.1)
Sheets(3).Cells(x, y) = Sheets(1).Cells(k, 3)
Next
问题是,运行完毫无反应,不报错但也没输出。我测试了两个bug可能性:
①xy可以正常运算赋值,见sheet3的(1,1)与(1,2)
②x,y也可以正常地作为cell(x,y)里面的参数进行定位,如(3,3),我当时用cells(x-&,y-&)定位到了(3,3)赋值为1。
但回到整体代码,他运行一会结束,一看shhet3就是毫无反应,什么都没赋值到。可能是当局者迷了,一般会是什么问题呢
|
|