ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

带你入门VBA系列之:不懂的代码快点贴过来

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-2-6 10:20 | 显示全部楼层

可不可以告诉我,如果我想输入一个值代出另一个值,代码要怎么写,谢谢

TA的精华主题

TA的得分主题

发表于 2007-2-6 17:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

兰老师您好!

我个问题想请教,如何选择一张表内的全部行和列!我使用巨集录制,

得到的语句为:   ActiveCell.Cells.Select

               Selection.copy

但是我重新写进程序里时,却行不通,选中的只是一个单元格,请问这是为什么!请兰老师邦助一下,多谢!

TA的精华主题

TA的得分主题

发表于 2007-2-7 17:33 | 显示全部楼层

小白问题:创建一个宏后,怎样才能运行它.代码直接贴到编辑器里,然后运行是不是就可以了.

TA的精华主题

TA的得分主题

发表于 2007-2-9 19:49 | 显示全部楼层

请帮我详细解释一下以下的VBA语法?谢谢

Sub aTry()
  Dim i%, j%
  Dim dt1 As Date, dt2 As Date, bz%, cnt%, ct1, ct2
  Dim arrs, arrd
  dt1 = [b1]
  dt2 = [d1]
  bz = [b2]
  arrs = Sheets("数据源").Range("A2:F" & Sheets("数据源").[a65536].End(xlUp).Row)
  ReDim arrd(1 To UBound(arrs), 1 To 4)
  ct1 = 0
  ct2 = 0
  cnt = 0
  For i = 1 To UBound(arrs)
    If arrs(i, 1) < dt1 Or arrs(i, 1) > dt2 Or arrs(i, 3) <> bz Then GoTo nxt
    For j = 1 To cnt
      If arrs(i, 4) = arrd(j, 1) Then Exit For
    Next j
    If j > cnt Then
      cnt = j
      arrd(j, 1) = arrs(i, 4)
    End If
    If arrs(i, 2) = "D生产领货" Then
      arrd(j, 2) = arrd(j, 2) + arrs(i, 6)
      arrd(j, 4) = arrd(j, 4) + arrs(i, 6)
      ct1 = ct1 + arrs(i, 6)
    ElseIf arrs(i, 2) = "E车间成品" Then
      arrd(j, 3) = arrd(j, 3) + arrs(i, 6)
      arrd(j, 4) = arrd(j, 4) - arrs(i, 6)
      ct2 = ct2 + arrs(i, 6)
    End If
nxt:
  Next i
  [a4:d10] = arrd
  [b11] = ct1
  [c11] = ct2
  [d11] = ct1 - ct2
End Sub

TA的精华主题

TA的得分主题

发表于 2007-2-11 09:51 | 显示全部楼层
Private Sub CommandButton1_Click()
    Dim Sql$
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=NO';Data Source=" & ActiveWorkbook.FullName
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "汇总" Then
             With Sheets("汇总")
             rowend = Application.WorksheetFunction.Max(.[E65536].End(xlUp).Row, .[H65536].End(xlUp).Row, .[M65536].End(xlUp).Row) + 1
             Sql = "Select * FROM [" & Sheets(i).Name & "$A5:O15] where f5<>null or f8<>null or f13<>null"
             .Cells(rowend, 1).CopyFromRecordset cn.Execute(Sql)
             End With
        End If
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2007-2-11 10:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2007-2-12 18:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我在写代码时用到

Dim rs As DAO.Recordset

系统提示DAO.Recordset未定义

我不知道要怎么定义,还请老师给予指点.

[em04]

TA的精华主题

TA的得分主题

发表于 2007-2-12 18:41 | 显示全部楼层

如何返回最后一行的行号

在程序中,我想知道最后一行的行号是多少,用什么样的方法去实现呀.

只知道在EXCEL中用公式=row()

TA的精华主题

TA的得分主题

发表于 2007-2-13 16:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

这是走论坛上下的SQL查询方面的代码,不太懂,还请老师指教!!

Private Sub CommandButton1_Click()
Dim sql$
Set conn = New ADODB.Connection
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;imex=1;';data source=" & ThisWorkbook.Path & "\数据区.xls"
sql = "select * from [sheet1$]"
[a2].CopyFromRecordset conn.Execute(sql)
conn.Close: Set conn = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2007-2-17 15:14 | 显示全部楼层

ActiveWorkbook.Names.Add Name:="ActiveR", RefersToR1C1:=Target.Row

看不懂,只知道它的作用:在一定区域,所在单元格行如要这片区域就会在该区域这行单元格显色

求教大侠

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

本版积分规则

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

GMT+8, 2024-11-19 20:45 , Processed in 0.035511 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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