Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7481|回复: 34

[已解决]为什么我写的类老是对不了?

[复制链接]
发表于 2010-3-9 22:50 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2013-4-21 11:50 编辑

hFMLewqP.rar (10.45 KB, 下载次数: 0)

V4yYUjmi.rar

13.34 KB, 下载次数: 0

为什么我写的类老是对不了?

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2010-3-9 23:45 | 显示全部楼层

Su4am4k0.rar (11.83 KB, 下载次数: 0)

回复

使用道具 举报

发表于 2010-3-10 01:12 | 显示全部楼层

Option Explicit
Dim myobj(1 To 3) As New mycls

Private Sub CommandButton1_Click()
Dim i
 For i = 1 To 3
       
        myobj(i).myevent.Value = 127
      
    Next i

End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To 3
        Set myobj(i).myevent = UserForm1.Controls("ScrollBar" & i)
        myobj(i).myevent.Value = 127(可手工定义)

        myobj(i).myevent.Max = 255(可手工定义)
    Next i
End Sub

其他未作变化,关键是这个255哦

回复

使用道具 举报

发表于 2010-3-10 09:00 | 显示全部楼层

一般我喜欢这样弄。

窗体代码:


Option Explicit
Dim myobj(1 To 3) As New mycls
Private Sub CommandButton1_Click()
    Dim i%
    For i = 1 To 3
        myobj(i).SetScroll
    Next
End Sub
Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To 3
        myobj(i).Attach UserForm1.Controls("ScrollBar" & i)
    Next i
End Sub

类模块代码:


Option Explicit
Public WithEvents myevent As MSForms.ScrollBar
Public R   '红
Public G   '绿
Public B   '蓝
Public Sub Attach(IsScroll As MSForms.ScrollBar)
    Set myevent = IsScroll
    Call SetScroll
End Sub
Private Sub myevent_Change()
    With UserForm1
        R = .ScrollBar1.Value
        G = .ScrollBar2.Value
        B = .ScrollBar3.Value
        UserForm1.CommandButton1.BackColor = RGB(R, G, B)
    End With
End Sub
Public Sub SetScroll()
    myevent.Max = 255
    myevent.Value = 127
End Sub
回复

使用道具 举报

发表于 2010-3-10 09:03 | 显示全部楼层

我这里原代码不能运行,改为:

mycls类模块代码


Option Explicit

Public R   '红
Public G   '绿
Public B   '蓝
Public WithEvents myevent As MSForms.ScrollBar

Private Sub Class_Initialize()
    R = UserForm1.ScrollBar1.Value
    G = UserForm1.ScrollBar2.Value
    B = UserForm1.ScrollBar3.Value
End Sub

Private Sub myevent_Change()
    With UserForm1
        R = .ScrollBar1.Value
        G = .ScrollBar2.Value
        B = .ScrollBar3.Value
        .CommandButton1.BackColor = RGB(R, G, B)
        Debug.Print R, G, B
    End With
End Sub

窗体UserForm1代码


Option Explicit

Dim myobj(1 To 3) As New mycls

Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To 3
        Set myobj(i).myevent = Me.Controls("ScrollBar" & i)
        Me.Controls("ScrollBar" & i).Max = 255  '调整滑动条最大值
    Next i
    Me.ScrollBar1.LargeChange = 100 '调整单击滑动条任一位置时变化值
    Me.ScrollBar2.SmallChange = 100 '调整单击滑动条箭头时变化值
    Me.ScrollBar3.Value = 150 '调整滑动条初始位置
End Sub

为什么有时变有时没变,应该是Excel里RGB函数支持的颜色不多,好象是56种吧

PDToolMX.rar (13.88 KB, 下载次数: 1)
回复

使用道具 举报

 楼主| 发表于 2010-3-10 11:13 | 显示全部楼层

学习各位了!

窗体中:

Dim myobj(1 To 3) As New mycls

Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To 3
        Set myobj(i).myevent = UserForm1.Controls("ScrollBar" & i)  '实例化窗体1中的这3个滚动条
    Next i
End Sub

类模块中:

Public WithEvents myevent As MSForms.ScrollBar
Public R As Integer    '红
Public G As Integer    '绿
Public B As Integer    '蓝

Private Sub Class_Initialize()  '设置类的初始化
    R = myobj
    G = myobj
    B = myobj
    myobj.Max = 255    '设置滚动条的最大值
End Sub

Private Sub myevent_Change()    '设置myevent类的值改变事件
    UserForm1.CommandButton1.BackColor = RGB(R, G, B)
End Sub

 

为什么这样不对呢[em11] 3zuOtR0H.rar (12.32 KB, 下载次数: 0)

回复

使用道具 举报

 楼主| 发表于 2010-3-10 11:27 | 显示全部楼层

明明知道各位的方法对,可是不明白为什么我的错[em22]
回复

使用道具 举报

发表于 2010-3-10 11:33 | 显示全部楼层

Private Sub Class_Initialize()  '设置类的初始化
    R = myobj
    G = myobj
    B = myobj
    myobj.Max = 255    '设置滚动条的最大值
End Sub

这句有错,在初始化类的时候,myobj对象还未指定。

回复

使用道具 举报

 楼主| 发表于 2010-3-10 11:41 | 显示全部楼层

好像好点了,正在试[em04]。。。。。
回复

使用道具 举报

 楼主| 发表于 2010-3-10 11:41 | 显示全部楼层

QUOTE:
以下是引用amulee在2010-3-10 11:33:00的发言:

Private Sub Class_Initialize()  '设置类的初始化
    R = myobj
    G = myobj
    B = myobj
    myobj.Max = 255    '设置滚动条的最大值
End Sub

这句有错,在初始化类的时候,myobj对象还未指定。

[em26][em25][em04]
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 16:11 , Processed in 0.358666 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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