ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-10-18 12:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用leon88在2006-9-13 22:32:29的发言:

Set Ci = Sheet2.Columns(2).Find(.Range("E4"), LookIn:=xlValues)'在第二列中查找单元格E4值所在的单元格
 If Not Ci Is Nothing Then
   Cs = Sheet2.Range(Ci.Address).Row‘如果找到的话,就返回单元格的行号

这几句是什么意思啊,我非常想知道啊

TA的精华主题

TA的得分主题

发表于 2006-10-18 12:40 | 显示全部楼层
QUOTE:
以下是引用leon88在2006-9-13 22:32:29的发言:

Set Ci = Sheet2.Columns(2).Find(.Range("E4"), LookIn:=xlValues)
 If Not Ci Is Nothing Then
   Cs = Sheet2.Range(Ci.Address).Row

这几句是什么意思啊,我非常想知道啊

TA的精华主题

TA的得分主题

发表于 2006-10-19 17:33 | 显示全部楼层

最后一句得改改

Set Ci = Sheet2.Columns(2).Find(.Range("E4"), LookIn:=xlValues)
 If Not Ci Is Nothing Then
   Cs = ci.row

TA的精华主题

TA的得分主题

发表于 2006-10-19 23:56 | 显示全部楼层

能注释以下的代码吗?

If Trim([B2].Text) = "" Then
  [B2].Select
  MsgBox [A2] & "不能为空"
ElseIf Trim([B3].Text) = "" Then
  MsgBox [A3] & "不能为空"
  [B3].Select
ElseIf Trim([B4].Text) = "" Then
  MsgBox [A4] & "不能为空"
  [B4].Select

谢谢!

TA的精华主题

TA的得分主题

发表于 2006-10-21 07:54 | 显示全部楼层
QUOTE:
以下是引用yyhd在2006-10-19 23:56:03的发言:

能注释以下的代码吗?

这是一个条件判断语句

If Trim([B2].Text) = "" Then‘判断单元格B2中是否有数据,无数据,则做出相应的提示
  [B2].Select  ‘选取B2单元格
  MsgBox [A2] & "不能为空"’提示A2单元格“不能为空”,以下代码类似

ElseIf Trim([B3].Text) = "" Then
  MsgBox [A3] & "不能为空"
  [B3].Select
ElseIf Trim([B4].Text) = "" Then
  MsgBox [A4] & "不能为空"
  [B4].Select

谢谢!

不过有点不明白,B2单元格为空,却提示A2单元格不能为空呢?

[此贴子已经被作者于2006-10-21 7:56:10编辑过]

TA的精华主题

TA的得分主题

发表于 2006-10-21 10:05 | 显示全部楼层

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheet3.Visible = True
Sheet3.[A2:H27].ClearContents
lstr = Sheet1.[a65536].End(xlUp).Row
For i = 2 To lstr
  rr = Application.Match(Sheet1.Cells(i, 1), Sheet4.Columns(1), 0)
  If Sheet4.Cells(rr, 3) = "是" Then
    For j = 1 To 8
      Sheet3.Cells(2 + m, j) = Sheet1.Cells(i, j)
    Next
 
    If Sheet1.Cells(i, 1) = Sheet1.Cells(i + 1, 1) Then
      m = m + 1
    Else
      m = 0
      Sheet3.[A28] = Sheet3.Cells(2, 1) & " 合计"
      Sheet3.PrintOut
      Sheet3.[A2:H27].ClearContents
      Sheet3.[A28].ClearContents
    End If
  End If
Next
If Application.CountIf(Sheet4.Columns(3), "是") = 0 Then
  MsgBox "错误提示: 你尚未在表格打印参数设置中选中想要打印的表格!"
  Sheet4.Visible = True
  Sheet4.Activate
End If
Sheet3.Visible = False
Application.ScreenUpdating = True
End Sub


Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
Sheet4.Visible = True
Sheet4.Activate
msg = "本次操作将进入打印参数设置表格,请选择你是否想清空设置表中已经设置好的参数: " & Chr(10) & Chr(10) & Chr(10) & "1.如果你想清空以前已经设置好的参数,重新进行设置,请按""确定""" & _
      Chr(10) & Chr(10) & "2.如果你想保留以前的设置,仅仅想对其中部分参数进行修改,请按""取消""" & Chr(10) & Chr(10) & Chr(10) & _
      "建议: 如果不是" & Sheet1.Name & "表中数据发生变动,请按""取消"",进入设置表中直接修改参数,以免再重新设置所有的参数,重复劳动."
If MsgBox(msg, 1) = 1 Then


  Sheet4.[A4:C65536].Clear
  lstr = Sheet1.[a65536].End(xlUp).Row
  For i = 2 To lstr
    If Sheet1.Cells(i, 1) <> Sheet1.Cells(i - 1, 1) Then
      Sheet4.Cells(4 + m, 1) = Sheet1.Cells(i, 1)
      Sheet4.Cells(4 + m, 2) = Sheet1.Cells(i, 2)
      Sheet4.Cells(4 + m, 3).Select
      With Selection.Validation
        .Add Type:=xlValidateList, Formula1:="是"
      End With
      m = m + 1
    End If
  Next
End If


Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_Activate()
  Sheet3.Visible = False
  Sheet4.Visible = False
End Sub


請幫解釋,謝謝

TA的精华主题

TA的得分主题

发表于 2006-10-21 17:04 | 显示全部楼层

TA的精华主题

TA的得分主题

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

兰老师:

我在《电脑爱好者》杂志上看到如下一段打印工资条的VBA代码,无奈刚学习VBA不久,实在难以理解,肯请,帮忙注释一下,先谢谢了!

Sub 打印工资条()
ActiveCell.SpecialCells(xlLastCell).Select
t = ActiveCell.Address
r1 = Mid(Trim(t), 4, 10)
r2 = Asc(Mid(Trim(t), 2, 1)) - Asc("A") + 1
Dim a(100)
For j = 1 To r2
Range(Chr(j - 1 + Asc("A")) + "1").Select
a(j) = ActiveCell.Value
Next
For i = r1 To 3 Step -1
Range("a" + Trim(CStr(i))).Select
Selection.EntireRow.Insert
For j = Asc("a") To Asc("a") + r2
Range(Chr(j) + Trim(CStr(i))).Select
ActiveCell.FormulaR1C1 = a(j - Asc("a") + 1)
Next
Next

End Sub

TA的精华主题

TA的得分主题

发表于 2006-10-23 22:08 | 显示全部楼层

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Or Target.Column > 5 Then Exit

我知道这段代码很简单,但我却看不懂,请老师帮忙翻译!

TA的精华主题

TA的得分主题

发表于 2006-10-24 09:50 | 显示全部楼层

兰老师:

  请教.我原来(计算系统XP未重装)Visual Basic编辑器中的<帮助>,能查到好多Workbooks  Range等的属性,方法,例子等等.现在没有了,要进入Web  msdn才能看到一些.很不舒服. 如何捡回原来的<帮助>?要安装什么?

        谢谢了!

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

本版积分规则

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

GMT+8, 2024-11-20 02:26 , Processed in 0.034951 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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