ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 466|回复: 0

[分享] excel坐标自动计算程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-31 10:38 | 显示全部楼层 |阅读模式
excel坐标自动计算程序
由于超过2M,只能发代码



Sub zhuyedsasfasj122()
Dim strint21 As String
Sheets("AAA").Select
strint21 = Cells(1, 8)
If strint21 = "K" Then
Call YYYYYy
End If
If strint21 = "ZK" Then
  Call ZZZZZZZ
End If

End Sub



Sub YYYYYy()

Sheets("AAA").Select
Dim shuzhi As Double

shuzhi = 6
Rows("954:957").Clear
Do While Cells(shuzhi, 1) <> ""
''''''''''查单一数值'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
      Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Set conn = New ADODB.Connection
      Set rs = New ADODB.Recordset
      '配置连接串
      conn.ConnectionString = "Provider=SQLOLEDB;Server=laptop-qtnmhplf;Database=shiqiao20210920;Uid=asas;Pwd=123456"
      conn.Open
   Dim str99 As String
   str99 = "shiqiaoLedgerLedgerY1"                 ''''shiqiao石桥28天后桩基压实度1021
   Dim str98 As String
       str98 = Cells(shuzhi, 1)
       Sql = "select * from " & str99 & " where 里程 = '" & str98 & "'"
        Set rs = conn.Execute(Sql)                           '4、执行SQL命令,产生记录集
'设置表头
    Sheets("AAA").Select
    Dim i As Integer
    For i = 0 To rs.Fields.Count - 1
    Cells(954, i + 1) = rs.Fields(i).Name
Next
'将数据输出到工作表
    Range("A956").CopyFromRecordset rs
'关闭连接
    rs.Close: Set rs = Nothing
    conn.Close: Set conn = Nothing
''''''''''查单一数值'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''数值位置转移''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Cells(shuzhi, 40) = Cells(956, 5)
Cells(shuzhi, 41) = Cells(956, 6)
Cells(shuzhi, 42) = Cells(956, 2)
Cells(shuzhi, 43) = Cells(956, 10)
Cells(shuzhi, 44) = Cells(956, 11)
Cells(shuzhi, 45) = Cells(956, 12)
Cells(shuzhi, 46) = Cells(956, 13)
Cells(shuzhi, 47) = Cells(956, 14)
Cells(shuzhi, 48) = Cells(956, 15)
'''''''''''数值位置转移''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Int(Cells(shuzhi, 1) / 0.1) = Cells(shuzhi, 1) / 0.1 Then
'''MsgBox "'可以整除"

Else
''''MsgBox "'不可以整除"



'''''''''''''''''''''''查2个数值''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim num99 As Double
num99 = -5000
num999 = num99
Do While num999 < Cells(shuzhi, 1)
   
   
num999 = num999 + 0.1
Loop
''''''''''''''''''''''''查2个数值''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''2个数值查询-----------------------------------------------------------------------
Rows("954:957").Clear
'      Dim conn As ADODB.Connection
'      Dim rs As ADODB.Recordset
      Set conn = New ADODB.Connection
      Set rs = New ADODB.Recordset
      '配置连接串
      conn.ConnectionString = "Provider=SQLOLEDB;Server=laptop-qtnmhplf;Database=shiqiao20210920;Uid=asas;Pwd=123456"
      conn.Open
      
   ''' "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password"    '''laptop-qtnmhplf     192.168.3.25
    ''  MsgBox ("连接成功!" & vbCrLf & "数据库状态:" & conn.State & vbCrLf & "数据库版本:" & conn.Version)
'    从test数据库的YGXM表中取出所有数据
'    rs.Open "select * from control point", conn
'''''''''SQL = "select distinct t1.编号,t1.姓名,t1.身份证号,t1.部门 " _
'''''''''    & "from 员工 t1 inner join 员工 t2 " _
'''''''''    & "on t1.姓名=t2.姓名 where t1.编号<>t2.编号 order by t1.姓名"

'   Dim str99 As String
   str99 = "shiqiaoLedgerLedgerY1"                 ''''shiqiao石桥28天后桩基压实度1021
     Dim str918 As Double
        Sheets("AAA").Select
        str918 = Left(num999, 7)
        str918 = Format(str918, "0.0")
        str981 = Left(num999 - 0.1, 7)
        str981 = Format(str981, "0.0")
        
        Sql1 = "select * from " & str99 & " where 里程 = '" & str918 & "'"
        Set rs1 = conn.Execute(Sql1)
   
   
        Sql = "select * from " & str99 & " where 里程 = '" & str981 & "'"
        Set rs = conn.Execute(Sql)                           '4、执行SQL命令,产生记录集
    '''Range("A451").CopyFromRecordset rs
'设置表头
    Sheets("AAA").Select
'    Dim i As Integer
    For i = 0 To rs.Fields.Count - 1
    Cells(954, i + 1) = rs.Fields(i).Name
Next
'将数据输出到工作表
    Range("A955").CopyFromRecordset rs
    Range("A956").CopyFromRecordset rs1
    '''Range("A955").CopyFromRecordset rs1
'关闭连接
'关闭连接
    rs.Close: Set rs = Nothing
    rs1.Close: Set rs1 = Nothing
    conn.Close: Set conn = Nothing
   

''''''''''''''''''''''''''''''2个数值查询------------------------------------------------------------
''''''''''''''''''''''''''''''''''''''''''
                t = 955
                num1 = Cells(shuzhi, 1) - Cells(t, 1)                 '''' 桩号差值
                num2 = Cells(t + 1, 1) - Cells(t, 1)     '''' 整桩号之间比值
                num3 = num1 / num2                    ''' 得到比值
                num4 = Cells(t + 1, 5) - Cells(t, 5)  '''''x
                num5 = Cells(t + 1, 6) - Cells(t, 6) '''''y
                num6 = Cells(t + 1, 2) - Cells(t, 2) '''''z
                num7 = Cells(t + 1, 11) - Cells(t, 11)  '''''
                num8 = Cells(t + 1, 10) - Cells(t, 10)  '''''
                ''''''''' '''''''''''''''''''''''
                  '''Set Sheets("AAA") = sheetall
                  Set sheetall = Sheets("AAA")
                                             sheetall.Cells(shuzhi, 40) = Cells(955, 5) + num3 * num4    ''''x
                                             sheetall.Cells(shuzhi, 41) = Cells(955, 6) + num3 * num5     ''''y
                                             sheetall.Cells(shuzhi, 42) = Cells(955, 2) + num3 * num6     ''''h
                                             sheetall.Cells(shuzhi, 43) = Cells(955, 10) + num3 * num8     '''' 角度
                                             sheetall.Cells(shuzhi, 44) = Cells(955, 11) + num3 * num7     '''' 转换角度
                                             sheetall.Cells(shuzhi, 45) = Cells(955, 12)    '''' 和路面转换角度
                                             sheetall.Cells(shuzhi, 46) = Cells(955, 13)      '''' 和路面角度
                                             sheetall.Cells(shuzhi, 47) = Cells(955, 14)  ''''横坡左
                                             sheetall.Cells(shuzhi, 48) = Cells(955, 15)  ''''横坡右
''''''''''''''''''''''''''''''''''''''''''
End If
shuzhi = shuzhi + 1
Loop
Call gzhuanghaojisuanuhhoo
End Sub

Sub gzhuanghaojisuanuhhoo()
'''''''''主页的桩号计算
Sheets("AAA").Select
Dim nummmop As Double
nummmop = 6
Do While Cells(nummmop, 40) <> ""
For oooo = 40 To 48 Step 1
Cells(nummmop, oooo) = CDbl(Cells(nummmop, oooo))
Next oooo
nummmop = nummmop + 1
Loop
Dim numb1 As Integer
numb1 = 6
Do While Cells(numb1, 1) <> ""
   If Cells(numb1, 2) <> "" Then '''''''左
       numb2 = Cells(numb1, 2)
       Cells(numb1, 4) = Cells(numb1, 40) + numb2 * Cos(Cells(numb1, 44) - Cells(numb1, 45))
       Cells(numb1, 5) = Cells(numb1, 41) + numb2 * Sin(Cells(numb1, 44) - Cells(numb1, 45))
       Cells(numb1, 6) = Cells(numb1, 42) - numb2 * (Cells(numb1, 47) / 100)
      
    Else
          numb3 = Cells(numb1, 3) '''''''右
          Cells(numb1, 4) = Cells(numb1, 40) + numb3 * Cos(Cells(numb1, 44) + Cells(numb1, 45))
          Cells(numb1, 5) = Cells(numb1, 41) + numb3 * Sin(Cells(numb1, 44) + Cells(numb1, 45))
          Cells(numb1, 6) = Cells(numb1, 42) - numb3 * (Cells(numb1, 48) / 100)
    End If
         
numb1 = numb1 + 1
Loop

End Sub




您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 00:46 , Processed in 0.032118 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表