Skip to content

zzhmy/VBA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

VBA

EXCEL VBA Sub 组内平均值() ' ' 组内平均值 Macro ' 宏由 zzh_my@163.com 录制,时间: 2015/11/18 ' '点名 初始化时间(s) 测量时刻 次序号 平面x(m) 平面y(m) 大地高(m) 解类型 备注 观测类型 观测者 x组内离均值 y组内离均值 H组内离均值 abs(x组内离均值) abs(y组内离均值) abs(H组内离均值) x x百分比 y y百分比 H H百分比 '需按照点名先排列好

        n = 0
        x = 0
        y = 0
        H = 0
        sheetname = "xzl-gnss"
       ' rowNumber = 933  'x = range("A65536").end(xlup).row  i = cells(rows.count,1).end(xlup).row+1
        rowNumber = Worksheets(sheetname).Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To rowNumber Step 1
        
       ' MsgBox (Name)
       '假如点名和下一条相等,且观测类型相等
       If (Worksheets(sheetname).Cells(i, 1).Value = Worksheets(sheetname).Cells(i + 1, 1)) And (Worksheets(sheetname).Cells(i, 10).Value = Worksheets(sheetname).Cells(i + 1, 10)) Then
           n = n + 1
           
            x = x + Worksheets(sheetname).Cells(i, 5).Value
            y = y + Worksheets(sheetname).Cells(i, 6).Value
            H = H + Worksheets(sheetname).Cells(i, 7).Value
       Else
            For j = 1 To n + 1 Step 1
                x_mean = x / n
                y_mean = y / n
                H_mean = H / n
                h1 = Worksheets(sheetname).Cells(i - j + 1, 7).Value
               ' MsgBox (x_mean)
                Worksheets(sheetname).Cells(i - j + 1, 12).Value = Worksheets(sheetname).Cells(i - j + 1, 5).Value - x_mean
                Worksheets(sheetname).Cells(i - j + 1, 13).Value = Worksheets(sheetname).Cells(i - j + 1, 6).Value - y_mean
                Worksheets(sheetname).Cells(i - j + 1, 14).Value = Worksheets(sheetname).Cells(i - j + 1, 7).Value - H_mean
             Next j
                x = 0
                y = 0
                H = 0
                x_mean = 0
                y_mean = 0
                H_mean = 0
                n = 0
                
       End If

 
 Next i

End Sub

Sub 统计单模式频率区间() ' ' 组内平均值 Macro ' 宏由 zzh_my@163.com 录制,时间: 2015/11/18 ' '点名 初始化时间(s) 测量时刻 次序号 平面x(m) 平面y(m) 大地高(m) 解类型 备注 观测类型 观测者 x组内离均值 y组内离均值 H组内离均值 abs(x组内离均值) abs(y组内离均值) abs(H组内离均值) x x百分比 y y百分比 H H百分比

'

        x1 = 0
        x2 = 0
        x3 = 0
        x4 = 0
        
        y1 = 0
        y2 = 0
        y3 = 0
        y4 = 0
        
        h1 = 0
        h2 = 0
        h3 = 0
        h4 = 0
        

        '区间范围m key0~key1  key1~key2 key2~key3 key3以上
        key0 = 0
        key1 = 0.03
        key2 = 0.05
        key3 = 0.1

        sheetname = "xzl-gnss"
       ' rowNumber = 933  'x = range("A65536").end(xlup).row  i = cells(rows.count,1).end(xlup).row+1
        rowNumber = Worksheets(sheetname).Cells(Rows.Count, 1).End(xlUp).Row
        
        'x循环
  For i = 2 To rowNumber Step 1
        
       If (Worksheets(sheetname).Cells(i, 15).Value) <= key1 Then
           x1 = x1 + 1
       End If
       If key1 < (Worksheets(sheetname).Cells(i, 15).Value) And (Worksheets(sheetname).Cells(i, 15).Value) <= key2 Then
           x2 = x2 + 1
       End If

       If key2 < (Worksheets(sheetname).Cells(i, 15).Value) And (Worksheets(sheetname).Cells(i, 15).Value) <= key3 Then
           x3 = x3 + 1
       End If
       
       If key3 < (Worksheets(sheetname).Cells(i, 15).Value) Then
           x4 = x4 + 1
       End If
 
 Next i
 '个数
 Worksheets(sheetname).Cells(2, 19).Value = x1
 Worksheets(sheetname).Cells(3, 19).Value = x2
 Worksheets(sheetname).Cells(4, 19).Value = x3
 Worksheets(sheetname).Cells(5, 19).Value = x4
 '百分比
 Worksheets(sheetname).Cells(2, 20).Value = x1 / (x1 + x2 + x3 + x4)
 Worksheets(sheetname).Cells(3, 20).Value = x2 / (x1 + x2 + x3 + x4)
 Worksheets(sheetname).Cells(4, 20).Value = x3 / (x1 + x2 + x3 + x4)
 Worksheets(sheetname).Cells(5, 20).Value = x4 / (x1 + x2 + x3 + x4)
 
             'y循环
  For i = 2 To rowNumber Step 1
        
       If (Worksheets(sheetname).Cells(i, 16).Value) <= key1 Then
           y1 = y1 + 1
       End If
       If key1 < (Worksheets(sheetname).Cells(i, 16).Value) And (Worksheets(sheetname).Cells(i, 16).Value) <= key2 Then
           y2 = y2 + 1
       End If

       If key2 < (Worksheets(sheetname).Cells(i, 16).Value) And (Worksheets(sheetname).Cells(i, 16).Value) <= key3 Then
           y3 = y3 + 1
       End If
       
       If key3 < (Worksheets(sheetname).Cells(i, 16).Value) Then
           y4 = y4 + 1
       End If
 
 Next i
 '个数
 Worksheets(sheetname).Cells(2, 21).Value = y1
 Worksheets(sheetname).Cells(3, 21).Value = y2
 Worksheets(sheetname).Cells(4, 21).Value = y3
 Worksheets(sheetname).Cells(5, 21).Value = y4
 '百分比
 Worksheets(sheetname).Cells(2, 22).Value = y1 / (y1 + y2 + y3 + y4)
 Worksheets(sheetname).Cells(3, 22).Value = y2 / (y1 + y2 + y3 + y4)
 Worksheets(sheetname).Cells(4, 22).Value = y3 / (y1 + y2 + y3 + y4)
 Worksheets(sheetname).Cells(5, 22).Value = y4 / (y1 + y2 + y3 + y4)
 
                  'H循环
  For i = 2 To rowNumber Step 1
        
       If (Worksheets(sheetname).Cells(i, 17).Value) <= key1 Then
           h1 = h1 + 1
       End If
       If key1 < (Worksheets(sheetname).Cells(i, 17).Value) And (Worksheets(sheetname).Cells(i, 17).Value) <= key2 Then
           h2 = h2 + 1
       End If

       If key2 < (Worksheets(sheetname).Cells(i, 17).Value) And (Worksheets(sheetname).Cells(i, 17).Value) <= key3 Then
           h3 = h3 + 1
       End If
       
       If key3 < (Worksheets(sheetname).Cells(i, 17).Value) Then
           h4 = h4 + 1
       End If
 
 Next i
 '个数
 Worksheets(sheetname).Cells(2, 23).Value = h1
 Worksheets(sheetname).Cells(3, 23).Value = h2
 Worksheets(sheetname).Cells(4, 23).Value = h3
 Worksheets(sheetname).Cells(5, 23).Value = h4
 '百分比
 Worksheets(sheetname).Cells(2, 24).Value = h1 / (h1 + h2 + h3 + h4)
 Worksheets(sheetname).Cells(3, 24).Value = h2 / (h1 + h2 + h3 + h4)
 Worksheets(sheetname).Cells(4, 24).Value = h3 / (h1 + h2 + h3 + h4)
 Worksheets(sheetname).Cells(5, 24).Value = h4 / (h1 + h2 + h3 + h4)

End Sub

Releases

No releases published

Packages

No packages published