sleony 发表于 2020-8-3 08:59

日常工作事项管理的vba模板

功能介绍:输入/修改/上下翻页/状态筛选/工作表状态区分(条件格式显色突出)
Dim l As Integer, arr, brr(0 To 1, 1 To 1000), intrownow, k As Integer, J As Integer, intclick_xz, intclick_xg, mrr
Private Sub UserForm_Initialize()
l = Sheets(3).Range("a65560").End(xlUp).Row
    If l = 1 Then MsgBox "暂时没有家庭事项": Exit Sub
      时间.Text = Sheets(3).Range("a" & l)
      事项.Text = Sheets(3).Range("b" & l)
      简述.Text = Sheets(3).Range("c" & l)
      交接情况.Text = Sheets(3).Range("d" & l)
      完成情况.AddItem Sheets(3).Range("e" & l)
      intrownow = l
      记录位置.Caption = "记录结果位于" & intrownow
End Sub
Private Sub 上一条_Click()
    If 未完成.Value = False Then
      intrownow = intrownow - 1
      时间.Text = Sheets(3).Range("a" & intrownow)
      事项.Text = Sheets(3).Range("b" & intrownow)
      简述.Text = Sheets(3).Range("c" & intrownow)
      交接情况.Text = Sheets(3).Range("d" & intrownow)
      完成情况.RemoveItem all
      完成情况.AddItem Sheets(3).Range("e" & intrownow)
      记录位置.Caption = "记录结果位于" & intrownow
    If intrownow <= 2 Then MsgBox "最上一行记录": Exit Sub
Else
    k = k - 1
    If k = 0 Then MsgBox "上面没有未完成项目": Exit Sub
      时间.Text = Sheets(3).Range("a" & brr(1, k))
      事项.Text = Sheets(3).Range("b" & brr(1, k))
      简述.Text = Sheets(3).Range("c" & brr(1, k))
      交接情况.Text = Sheets(3).Range("d" & brr(1, k))
      完成情况.RemoveItem all
      完成情况.AddItem Sheets(3).Range("e" & brr(1, k))
      intrownow = brr(1, k)
      记录位置.Caption = "记录结果位于" & intrownow
    End If
End Sub
Private Sub 下一条_Click()
    If 未完成.Value = False Then
      intrownow = intrownow + 1
      时间.Text = Sheets(3).Range("a" & intrownow)
      事项.Text = Sheets(3).Range("b" & intrownow)
      简述.Text = Sheets(3).Range("c" & intrownow)
      交接情况.Text = Sheets(3).Range("d" & intrownow)
      完成情况.RemoveItem all
      完成情况.AddItem Sheets(3).Range("e" & intrownow)
      记录位置.Caption = "记录结果位于" & intrownow
      
    If intrownow > l - 1 Then MsgBox "最下一行记录": Exit Sub
Else
    k = k + 1
    If k > J Then MsgBox "下面没有未完成项目": Exit Sub
      时间.Text = Sheets(3).Range("a" & brr(1, k))
      事项.Text = Sheets(3).Range("b" & brr(1, k))
      简述.Text = Sheets(3).Range("c" & brr(1, k))
      交接情况.Text = Sheets(3).Range("d" & brr(1, k))
      完成情况.RemoveItem all
      完成情况.AddItem Sheets(3).Range("e" & brr(1, k))
      intrownow = brr(1, k)
      记录位置.Caption = "记录结果位于" & intrownow
    End If
End Sub
Private Sub 未完成_Click()
int_wwc = int_wwc + 1
If int_wwc Mod 2 = 1 Then
未完成.Value = True
arr = Sheets(3).Range("a2:e" & l)
    For i = 1 To UBound(arr)
    If arr(i, 5) = "未完成" Then
      k = k + 1
      brr(1, k) = i + 1
      End If
      Next i
      J = k
      If k = 0 Then MsgBox "没有未完成事项": 未完成.Value = False: Exit Sub
时间.Text = Sheets(3).Range("a" & brr(1, k))
事项.Text = Sheets(3).Range("b" & brr(1, k))
简述.Text = Sheets(3).Range("c" & brr(1, k))
交接情况.Text = Sheets(3).Range("d" & brr(1, k))
完成情况.RemoveItem all
完成情况.AddItem Sheets(3).Range("e" & brr(1, k))
intrownow = brr(1, k)
记录位置.Caption = "记录结果位于" & intrownow
Else
   未完成.Value = False
   End If
End Sub
Private Sub 新增_Click()
    intclick_xz = intclick_xz + 1
      If intclick_xz Mod 2 = 1 Then
            新增.Caption = "添加"
            时间.Text = Format(Now, "short date")
            事项.Text = ""
            简述.Text = ""
            交接情况.Text = ""
            完成情况.RemoveItem all
            完成情况.AddItem "完成"
            完成情况.AddItem "未完成"
            时间.SetFocus
         Else
         l = l + 1
            新增.Caption = "新增"
            Sheets(3).Range("a" & l) = 时间.Text
            Sheets(3).Range("b" & l) = 事项.Text
            Sheets(3).Range("c" & l) = 简述.Text
            完成情况.RemoveItem all
            Sheets(3).Range("d" & l) = 交接情况.Text
            Sheets(3).Range("e" & l) = 完成情况.Text
            intrownow = l
            Worksheets(3).Rows("1:1000").AutoFit
            intrownow = l
            记录位置.Caption = "记录结果位于" & intrownow
      End If
End Sub
Private Sub 修改_Click()
intclick_xg = intclick_xg + 1
    If intclick_xg Mod 2 = 1 Then
      修改.Caption = "确认修改"
      时间.SetFocus
      完成情况.RemoveItem all
      完成情况.AddItem "完成"
      完成情况.AddItem "未完成"
    Else
      修改.Caption = "修改"
      Sheets(3).Range("a" & intrownow) = 时间.Text
      Sheets(3).Range("b" & intrownow) = 事项.Text
      Sheets(3).Range("c" & intrownow) = 简述.Text
      Sheets(3).Range("d" & intrownow) = 交接情况.Text
      Sheets(3).Range("e" & intrownow) = 完成情况.Text
      完成情况.Clear
      完成情况.AddItem Sheets(3).Range("e" & intrownow)
      
    End If
End Sub

sleony 发表于 2020-8-3 09:01

具体关键点:全局变量的/条件筛选的双数组/功能模块的调用/条件格式中参数的调用(嵌套变量)

kaile2598 发表于 2020-8-3 09:15

代码学习下 之前接触过vba 一段时间不用 有些生疏了

千肀 发表于 2020-8-3 09:17

35122221~

lr957 发表于 2020-8-3 09:18

好东西,谢谢分享!!!!

shubiao05 发表于 2020-8-3 09:33

整体的Excel文件可以在发一下,感兴趣的朋友也能测试一下效果,同时提出不同的想法

tinalian 发表于 2020-8-3 09:58

支持楼上,麻烦发个完整的!

abcttud 发表于 2020-8-3 10:48

请朋友完整发一份,谢谢!

zjwIwepj 发表于 2020-8-3 17:54

把excel文件也发一份吧
页: [1]
查看完整版本: 日常工作事项管理的vba模板