我现在有20个物种点数据(有三列:经度、纬度和值)存放在EXCEL中,我想每次提取19个(三列数据是一个),留下一个,每次留下的点不一样,循环一遍,如何编程呢?提出来的能够放在EXCEL中用,并且能够区分20个循环的结果。谢谢大家了。 JD WD zhi
107.35 39.24 1
103.83 36.99 1
99.98 39.31 1
103.15 38.72 1
105.68 38.85 1
99.58 39.49 1
100.62 38.97 1
101.5 38.91 1
103.08 39.44 1
103.69 40.72 1
104.88 39.31 1
105.56 39.16 1
105.26 40.18 1
104.79 41.29 1
105.73 41.34 1
106.33 41.14 1
106.64 40.46 1
106.93 39.87 1
106.95 39.53 1
107.29 39.98 1
107.35 39.24 1
103.83 36.99 1
99.98 39.31 1
103.15 38.72 1
105.68 38.85 1
99.58 39.49 1
100.62 38.97 1
101.5 38.91 1
103.08 39.44 1
103.69 40.72 1
104.88 39.31 1
105.56 39.16 1
105.26 40.18 1
104.79 41.29 1
105.73 41.34 1
106.33 41.14 1
106.64 40.46 1
106.93 39.87 1
106.95 39.53 1
107.29 39.98 1
解决方案 »
- ActiveReport3 可以把帐票以PDF格式导出来,但是怎么以PDF预览?
- 问大家一个问题,用API实现的秒数毫秒会不会出现和闹钟一样的情况有丢失针?以下有API函数
- 纪念技术总分11111
- 求《Visual Basic 开发 ERP 系统实例导航》源代码
- for ... next的代碼效率問題
- 怎样使vb报表预览中的打印按钮失效
- 新手请教
- data report+data environment显示数据,报实时错误,3251,怎么解决
- 关于WEBBROSER元素存在与否可视区域的移动操作
- 请教一个FOXPRO6.0的问题!急!
- GetModuleFileNameEx 函数的问题要用GetModuleFileNameExA来执行的问题
- 有专家进来吗?求救如何下载论坛验证码。。24小时在线等待,,
for j=1 to 20
if j<>i then
提取该行
end if
next j
next i
Option ExplicitSub Get19From20(strSheetName As String, lFirstRow As Long, lLastRow As Long)
Dim shtSheet As Worksheet, shtCurSheet As Worksheet, lSheetIndex As Long, lRow As Long
On Error Resume Next
Set shtSheet = Worksheets(strSheetName)
If Err.Number <> 0 Then
MsgBox "在当前工作簿中不存在名为“" & strSheetName & "”的工作表!请检查后重试。", _
vbExclamation, "工作表不存在"
Exit Sub
End If
lSheetIndex = 0
For lRow = lFirstRow To lLastRow
lSheetIndex = lSheetIndex + 1
On Error Resume Next
Set shtCurSheet = Worksheets(CStr(lSheetIndex))
If Err.Number <> 0 Then
On Error GoTo ErrorHandle
Set shtCurSheet = Worksheets.Add(After:=Worksheets(lSheetIndex))
shtCurSheet.Name = CStr(lSheetIndex)
End If
On Error GoTo ErrorHandle
shtCurSheet.UsedRange.ClearContents
shtSheet.UsedRange.Copy shtCurSheet.Range("A1")
shtCurSheet.Rows(lRow).Delete Shift:=xlUp
Next lRow
MsgBox "物种点数据提取完毕,共从表“" & strSheetName & _
"”的第" & lFirstRow & "行到第" & lLastRow & "行中提取" & lSheetIndex & "次数据。" & _
vbCrLf & "留下第 n 个物种点数据行的提取结果存放在以 n 为名字的工作表中。", , "提取完毕"
Set shtCurSheet = Nothing
Set shtSheet = Nothing
Exit SubErrorHandle:
MsgBox "正在留下第" & lSheetIndex & "个物种点数据行以提取数据的时候出现错误,程序停止运行。" & _
vbCrLf & "当前用以保存结果数据的工作表是“" & lSheetIndex & "”。以下为出错信息:" & _
vbCrLf & vbCrLf & "Error # " & Err.Number & ", " & Err.Description & _
vbCrLf & "Source: " & Err.Source, vbCritical, "程序异常中止"
Set shtCurSheet = Nothing
Set shtSheet = Nothing
End SubSub DoIt()
Const SourceSheet As String = "源"
Get19From20 SourceSheet, 2, 21
End Sub将你的物种点数据放在工作表“源”中;进入Visual Basic编辑器,插入一个模块,将以上代码贴入该模块;运行DoIt过程,搞定。
是不是想实现LOO算法啊
留下第一和最后一个时,单独处理;中间的分两次处理,假如要留下第K个,总共有N个样本,对1到K-1,K+1到N分开处理就行了。