ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] VBA窗体学习笔记三:ListBox控件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-7-6 16:35 | 显示全部楼层 |阅读模式
    一、概况
        VBA常用控件之一,它能以列表的形式直观的显示单元格区域或数组的值,并允许您选择其中的一个或多个值。如果ListBox绑定到数据源,则 ListBox 会将所选值存储在该数据源中。ListBox 可以显示为列表,也可以显示为一组 OptionButton 控件或 CheckBox 控件。ListBox 的默认属性为 Value 属性。 ListBox 的默认事件是 Click 事件。
    二、常用属性
        1、BackColor:背景色。设置或获取属性值,该属性标识ListBox控件的背景颜色。
            Me.ListBox1.BackColor = vbBlue
        2、BorderColor:边框颜色。设置或获取属性值,该属性标识ListBox控件的边框颜色。
            Me.ListBox1.BorderColor = vbRed
            注意:该属性在属性BorderStyle = fmBorderStyleSingle时才有效
        3、BorderStyle:边框类型。设置或获取属性值,该属性标识ListBox控件的边框类型。
            Me.ListBox1.BorderStyle = fmBorderStyleNone '值为0(默认值),无边框
            Me.ListBox1.BorderStyle = fmBorderStyleSingle '值为1,单线边框
        4、BoundColumn:绑定列。设置或获取属性值,该属性标识ListBox控件绑定的列号,相当于设定列号,设置该属性将影响Value属性值。
            Me.ListBox1.BoundColumn = 0 'BoundColumn设为0
            Debug.Print Me.ListBox1.Value '返回当前行号
              以上两行代码等同于:Debug.Print Me.ListBox1.ListIndex
            Me.ListBox1.BoundColumn = 1 'BoundColumn设为1(默认值)
            Debug.Print Me.ListBox1.Value '返回当前行、第一列(列号0)的值
              以上两行代码等同于:Debug.Print Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
            Me.ListBox1.BoundColumn = 2 'BoundColumn设为2
            Debug.Print Me.ListBox1.Value '返回当前行、第二列(列号1)的值
              以上两行代码等同于:Debug.Print Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
            注意:该属性的取值范围为从0到该列表中的列数。 列表中第一列(列号0)的BoundColumn值为1,第二列的值为2,依此类推。 将BoundColumn设置为0将显示
            ListIndex的值。
        5、TextColumn:文本列。设置或获取属性值,该属性标识ListBox控件中要向用户显示的列,设置该属性将影响Text属性值。
            Me.ListBox1.TextColumn = -1 'TextColumn设为-1(默认值)
             Debug.Print Me.ListBox1.Text '返回当前行、第一列(列号0)的值
              以上两行代码等同于:Debug.Print Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
            Me.ListBox1.TextColumn = 0 'TextColumn设为0
            Debug.Print Me.ListBox1.Text '返回当前行号
              以上两行代码等同于:Debug.Print Me.ListBox1.ListIndex
            Me.ListBox1.TextColumn = 1 'TextColumn设为1
            Debug.Print Me.ListBox1.Text '返回当前行、第一列(列号0)的值
              以上两行代码等同于:Debug.Print Me.ListBox1.ListIndex
            Me.ListBox1.TextColumn = 2 'TextColumn设为2
            Debug.Print Me.ListBox1.Text '返回当前行、第二列(列号1)的值
              以上两行代码等同于:Debug.Print Me.ListBox1.ListIndex
            注意:该属性的取值范围为从-1到该列表中的列数。 列表中第一列(列号0)的TextColumn值为1,第二列的值为2,依此类推。 将TextColumn设置为0将显示
            ListIndex的值。 将 TextColumn 设置为 -1 将显示 ColumnWidths 值大于 0 的第一列。
        6、ColumnCount:列计数。设置或获取属性值,该属性标识ListBox控件列总数。
            Me.ListBox1.ColumnCount = 6 '设置为多列列表框:6列(默认值1,即为单列列表框)
        7、ColumnHeads:列标题。设置或获取属性值,该属性标识ListBox控件是否显示列标题。布尔型。
            Me.ListBox1.ColumnHeads = False  '值为0(默认值),不显示列标题
            Me.ListBox1.ColumnHeads = True   '值为1,显示列标题
        8、ColumnWidths:列宽。设置或获取属性值,该属性标识ListBox控件各列的宽度。以磅为单位,设为0时则隐藏该列。
            Me.ListBox1.ColumnWidths = "80;90;100"
            Me.ListBox1.ColumnWidths = "80,90,100"
            注意:多列列表框ColumnWidths接受一个字符串参数。
        9、ControlSource:控制源。设置或获取属性值,该属性标识当点击ListBox控件时,输出指定值到单元格。
            Me.ListBox1.ControlSource = "Sheet1!G1" '设置控制源为Sheet1表的G1单元格,点击控件输出当前行、第一列的值
            注意:该属性代码一般写在UserForm_Initialize事件中,其他事件可能使该属性无效。列号用BoundColumn属性指定,不指定则取默认值1(第一列)。
            下面的代码写入UserForm_Initialize事件,点击ListBox控件就能在A18单元格输出点击行、第二列的值
            With Me.ListBox1
                .ColumnHeads = True '显示列标题
                .ColumnCount = 5 '设置列数为5列
                .RowSource = "Sheet1!A2:E15" '加载表区域数据至列表控件
                .ControlSource = "A18" '设置控制源为单元格A18
                .BoundColumn = 2 '设置绑定列为第二列
            End With
            注意:数据源区域为Sheet1!A1:E15,其中A1:E1为标题。确保A18为空或为A2:A15某一单元格值,否则会报无效属性值错误。
        10、ControlTipText:控件提示文本。设置或获取属性值,该属性标识当鼠标移到ListBox控件上后,显示的提示信息。
            Me.ListBox1.ControlTipText = "提示信息"  '该属性设置的提示信息将在一行显示,换行回车符都视为无效:Chr(10)、Chr(13)、vbNewLine、vbCrLf
        11、Enabled:可操作性。设置或获取该属性值,该属性标识ListBox控件的可操作性。
            Me.ListBox1.Enabled = False '值为0,ListBox控件不可以操作,ControlTipText控件提示文本也不被显示
            Me.ListBox1.Enabled =  True '值为1(默认值),ListBox控件可以操作
        12、Font:字体。设置或获取该属性值,该属性标识ListBox控件的文字特征,包括字体,字号大小,斜体,下划线等。
            Me.ListBox1.Font.Name = "宋体"  '字体名称
            Me.ListBox1.Font.Size = 14  '字体大小
            Me.ListBox1.Font.Italic = True  '斜体
            Me.ListBox1.Font.Bold = True  '粗体
            Me.ListBox1.Font.Underline = True  '下划线
            Me.ListBox1.Font.Strikethrough = True  '删除线
            不常用的两个:Me.ListBox1.Font.Weight(灰度)、Me.ListBox1.Font.Charset(字符集)
        13、ForeColor:前景颜色。设置或获取该属性值,该属性标识ListBox控件文字的前景颜色(含标题及其框线)。
            Me.ListBox1.ForeColor = RGB(125, 125, 0)
            Me.ListBox1.ForeColor = vbBlue
            不能用ColorIndex方法:Me.ListBox1.ForeColor.ColorIndex = 3 会出现无效限定符提示
        14、Height:高度。设置或获取该属性值,该属性标识ListBox控件的高度。
            Me.ListBox1.Height = 150
        15、Width:宽度。设置或获取该属性值,该属性标识ListBox控件的宽度。
             Me.ListBox1.Width = 450
        16、HelpContextID:帮助上下文ID。指定由 HelpFile 属性设置指定的自定义“帮助”文件中某个主题的上下文 ID。 Long 型,可读/写。
             Me.ListBox1.HelpContextID = 1

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:36 | 显示全部楼层
本帖最后由 tanglf188 于 2023-7-7 16:37 编辑

        17、IMEMode:IME模式。设置或获取该属性值,该属性标识ListBox控件的输入法编辑器 (IME) 的默认运行时模式。
                输入法编辑器IME:将键入内容转换为DBCS 语言字符(如日语或中文)的应用程序。 当用户键入时,IME会显示可能的等效项。 用户选择最合适的项目。
                注意:此属性仅适用于为东亚地区编写的应用程序,在其他应用程序中将被忽略。
                IMEMode属性语法如下:
            Me.ListBox1.IMEMode [= fmIMEMode ]  参数fmIMEMode,可选, 输入法编辑器 (IME) 的模式。
            fmIMEMode 的设置为:
                常量                        值        Description
            fmIMEModeNoControl        0        不控制 IME(默认)
            fmIMEModeOn                1        打开 IME
            fmIMEModeOff                2        IME 关闭。 英文模式
            fmIMEModeDisable                3        关闭 IME。 用户无法通过键盘打开 IME
            fmIMEModeHiragana        4        打开 IME 并使用全角平假名模式
            fmIMEModeKatakana        5        打开 IME 并使用全角片假名模式
            fmIMEModeKatakanaHalf        6        打开 IME 并使用半角片假名模式
            fmIMEModeAlphaFull        7        打开 IME 并使用全角字母数字模式
            fmIMEModeAlpha                8        打开 IME 并使用半角字母数字模式
            fmIMEModeHangulFull        9        打开 IME 并使用全角朝鲜语字母模式
            fmIMEModeHangul                10        打开 IME 并使用半角朝鲜语字母模式
                fmIMEModeNoControl 设置指示当控件在运行时接收焦点时,IME 的模式不会发生更改。 对于任何其他值,IME的模式将设置为当控件在运行时接收焦点
            时由IMEMode属性指定的值。
                可通过两种方式设置 IME 的模式。 一种方式是通过 IME 的工具栏。 另一种方式是使用此控件的 IMEMode 属性,这将设置或返回 IME 的当前模式。
            此属性允许通过代码对 IME 进行动态控制。
                参阅网址:https://learn.microsoft.com/zh-c ... lp/imemode-property
        18、IntegralHeight:整体高度。设置或获取该属性值,该属性标识ListBox控件调整大小以便不显示不完整的项。
            Me.ListBox1.IntegralHeight = False '值为0,控件不自动调整大小
            Me.ListBox1.IntegralHeight = True '值为1(默认值),控件会自动调整大小,以确保项不会部分显示
        19、Left:左边。设置或获取该属性值,该属性标识ListBox控件距离主窗口(容器)左边界的距离。
            Me.ListBox1.Left = 10
        20、Top:顶部。设置或获取该属性值,该属性标识ListBox控件距离主窗口(容器)上边界的距离。
            Me.ListBox1.Top = 10
        21、ListStyle:列表样式。设置或获取该属性值,该属性标识ListBox控件列表的视觉外观(单选显示选项按钮、多选显示复选框)。
            Me.ListBox1.ListStyle = fmListStylePlain '值为0(默认值),平面样式。此时不显示选项按钮或复选框(此时MultiSelect属性将被忽略)
            Me.ListBox1.ListStyle = fmListStyleOption '值为1,选项样式。此时显示选项按钮或复选框(具体由MultiSelect属性值决定)
            注意:当MultiSelect属性值为0时显示选项按钮,当MultiSelect属性值为1或2时显示复选框。
        22、MultiSelect:多选。设置或获取该属性值,该属性标识ListBox控件是否允许多选。
            Me.ListBox1.MultiSelect = fmMultiSelectSingle '值为0(默认值),单选(此时当属性ListStyle设为fmListStyleOption时显示选项按钮)
            Me.ListBox1.MultiSelect = fmMultiSelectMulti '值为1,多选,按空格键或单击将选择或取消选择列表中的项(此时当属性ListStyle设为
                 fmListStyleOption时显示复选框)
            Me.ListBox1.MultiSelect = fmMultiSelectExtended '值为2,扩展多选(快速多选)方法:(1)、先单击鼠标选定起始项,再按下Shift键不放并
                 单击鼠标扩展到当前项;(2)、按下鼠标左键不放选定起始项,再拖动鼠标扩展到当前项;(3)、用键盘上下箭头键选定起始项,再按下Shift
                 键不放,用上下箭头键扩展到当前项;(4)、按下Ctrl键不放并单击鼠标将选择或取消选择项目。
        22、Locked:锁定。设置或获取该属性值,该属性标识ListBox控件是否可以编辑。如果控件已锁定并启用,它仍然可以发起事件并且可接收焦点。
            Me.ListBox1.Locked = False '值为0(默认值),不锁定
            Me.ListBox1.Locked = True '值为1,锁定
            注意:Enabled 和 Locked 属性合用可以获得以下效果:
                如果 Enabled 和 Locked 都为 True,则控件将可以接收焦点并在窗体中正常显示(不淡显)。 用户可以复制但不能编辑该控件中的数据。
                如果 Enabled 为 True 而 Locked 为 False,则控件可以接收焦点并在窗体中正常显示。 用户可以复制和编辑控件中的数据。
                如果 Enabled 为 False 而 Locked 为 True,则控件将不能接收焦点,并且在窗体中淡显。 用户既不能复制也不能编辑控件中的数据。
                如果 Enabled 和 Locked 都为 False,则控件将不能接收焦点,并且在窗体中淡显。 用户既不能复制也不能编辑控件中的数据。
        23、MatchEntry:匹配项目。设置或获取该属性值,该属性标识ListBox控件在用户键入时如何搜索其列表。
            Me.ListBox1.MatchEntry = fmMatchEntryFirstLetter '值为0(默认值),基本匹配,输入字符串中第一个字符,从项目开头搜索,重复输入循环搜索
            Me.ListBox1.MatchEntry = fmMatchEntryComplete '值为1,扩展匹配。 输入的字符串,从项目开头搜索
            Me.ListBox1.MatchEntry = fmMatchEntryNone '值为2,无匹配
            注意:
                (1)、MatchEntry属性搜索项目是从最左边开始,如果输入的字符开头没有中间有则视为没有搜索到;
                (2)、MatchEntry属性默认搜索第一列(列号0),具体搜索哪一列由TextColumn属性设定,当控件显示选项按钮或复选框时,则它们作为第一列(列号0);
                (3)、找到匹配项后,将选中含有匹配项的行,并显示列的内容,其BoundColumn属性的内容将成为控件的值,如果完全匹配,则找到匹配项将发起Click事件。
                (4)、当用户进行键入时,该项会与列表中的当前行和下一行进行比较。 如果该项仅与当前行匹配,则匹配是明确的。
                (5)、在Microsoft窗体中,不论列表是否经过排序,控件将按列表项的排列顺序找出匹配输入项的第一项。
                  例如,输入"abc"或"bc"将会触发下面列表的 Click 事件:
                  abcde
                  bcdef
                  abcxyz
                  bchij
                  在以上两种情况中,匹配项都不是唯一的。但是,它与相邻项很不同,控件将该匹配解释为明确匹配并触发 Click 事件。
        24、MouseIcon:鼠标图标。当属性MousePointer设为99时,设定一个自定义的鼠标图标。
            Me.ListBox1.MousePointer = 99 '鼠标指针设为自定义
            Me.ListBox1.MouseIcon = LoadPicture("C:\Users\DY\Desktop\3 Balls.ico") '图标文件必须是扩展名为ico的文件,否则会报无效的图片错误
            注意:MouseIcon 属性在MousePointer属性设置为99时才有效。 控件的鼠标图标是用户将鼠标移过控件时所显示的图像。若要为鼠标指针指
                 定图像,既可以为MouseIcon属性指定图片,也可以使用LoadPicture函数从文件加载图片。


        25、MousePointer:鼠标指针。设置或获取该属性值,该属性标识用户将鼠标移过ListBox控件时所显示的形状
            Me.ListBox1.MousePointer = fmMousePointerDefault '值为0(默认值),标准指针。 由对象确定的图像(默认)
            Me.ListBox1.MousePointer = fmMousePointerArrow '值为1,箭头
            Me.ListBox1.MousePointer = fmMousePointerCross '值为2,十字型指针
            Me.ListBox1.MousePointer = fmMousePointerIBeam '值为3,I型指针
            Me.ListBox1.MousePointer = fmMousePointerSizeNESW '值为6,指向东北方向和西南方向的双箭头
            Me.ListBox1.MousePointer = fmMousePointerSizeNS '值为7,指向正北方向和正南方向的双箭头。
            Me.ListBox1.MousePointer = fmMousePointerSizeNWSE '值为8,指向西北方向和东南方向的双箭头
            Me.ListBox1.MousePointer = fmMousePointerSizeWE '值为9,指向正东方向和正西方向的双箭头
            Me.ListBox1.MousePointer = fmMousePointerUpArrow '值为10,向上箭头
            Me.ListBox1.MousePointer = fmMousePointerHourglass '值为11,沙漏
            Me.ListBox1.MousePointer = fmMousePointerNoDrop '值为12,将拖动的对象顶部的“Not”符号。 指示无效的放置目标
            Me.ListBox1.MousePointer = fmMousePointerAppStarting '值为13,带沙漏的箭头
            Me.ListBox1.MousePointer = fmMousePointerHelp '值为14,带问号的箭头
            Me.ListBox1.MousePointer = fmMousePointerSizeAll '值为15,调整所有光标的大小(指向正北方向、正南方向、正东方向和正西方向的箭头)
            Me.ListBox1.MousePointer = fmMousePointerCustom '值为99,使用由MouseIcon属性指定的图标

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
        26、RowSource:行源(数据源)。设置或获取该属性值,该属性标识为ListBox控件指定数据源。
            Me.ListBox1.RowSource = "Sheet1!A2:E" & last  或
            Me.ListBox1.RowSource = Sheet1.Range("A2:E" & last).Address(External:=True)
            注意:(1)、当ColumnHeads = True设定标题时,RowSource要从第二行开始设定,否则(第一行被占用)标题显示:列A,列B.....;
                      (2)、只有设置RowSource时,才可以显示标题。通过AddItem、List或Column赋值的Listbox无法显示标题 。   
        27、SpecialEffect:特殊效果。设置或获取该属性值,该属性标识ListBox控件的视觉外观。
            Me.ListBox1.SpecialEffect = fmSpecialEffectFlat   '值为0,控件平面显示,通过边框和(或)颜色的变化来与周围的窗体相区别
            Me.ListBox1.SpecialEffect = fmSpecialEffectRaised   '值为1,控件凸起显示,控件的左边和顶边加亮显示,右边和底边带有阴影
            Me.ListBox1.SpecialEffect = fmSpecialEffectSunken   '值为2(默认值),控件凹陷显示,控件的顶边和左边带阴影,底边和右边加亮显示
            Me.ListBox1.SpecialEffect = fmSpecialEffectEtched   '值为3,控件蚀刻显示,控件边缘呈凹入状态
            Me.ListBox1.SpecialEffect = fmSpecialEffectBump   '值为6,控件碰撞显示,控件的底边和右边凸起,顶边和左边平坦
        28、TabIndex:标签索引号。设置或获取该属性值,该属性标识ListBox控件当用户按Tab键进行各控件焦点切换时,该控件的顺序编号。
            Me.ListBox1.TabIndex = 1
            注意:对窗体上的各个控件,系统会按先入为主按顺序编号(从0开始),如果想要改变这个顺序就要设置TabIndex属性。
        29、TabStop:标签停止。设置或获取该属性值,该属性标识ListBox控件当用户按Tab键进行各控件焦点切换时,该控件是否获取焦点。
            Me.ListBox1.TabStop = True  '值为1(默认值),获取焦点
            Me.ListBox1.TabStop = False  '值为0,不获取焦点
        30、Tag:标签。存储程序所需的附加数据。
        31、Text:文本。获取该属性值,该属性标识ListBox控件中当前选定项的文本。该属性值受TextColumn属性影响,具体参照第5条TextColumn属性。
            Debug.Print Me.ListBox1.Text  '输出当前选定的文本,列号由TextColumn属性设定,不设定TextColumn属性默认输出选定行、第一列(列号0)的值
            Me.ListBox1.TextColumn = 3
            Debug.Print Me.ListBox1.Text  '结合上条TextColumn属性设定的代码,输出选定行、第三列(列号2)的值
            注意:Text属性仅在MultiSelect = fmMultiSelectSingle(单选)时有效。由TextColumn属性设定列号。选项按钮或复选框所在列不参与列号设定。
        32、TextAlign:文本对齐方式。设置或获取该属性值,该属性标识ListBox控件中文本对齐方式。
            Me.ListBox1.TextAlign = fmTextAlignLeft  '值为1(默认值),左对齐
            Me.ListBox1.TextAlign = fmTextAlignCenter  '值为2,居中对齐
            Me.ListBox1.TextAlign = fmTextAlignRight  '值为3,右对齐
        33、Top:顶部。设置或获取该属性值,该属性标识ListBox控件距离主窗口(容器)上边界的距离。
            Me.ListBox1.Top = 10
        34、Value:值。获取该属性值,该属性标识ListBox控件中当前选定项的值。该属性值受BoundColumn属性影响,具体参照第4条BoundColumn属性。
            Debug.Print Me.ListBox1.Value  '输出当前选定的值,列号由BoundColumn属性设定,不设定BoundColumn属性默认输出选定行、第一列(列号0)的值
            Me.ListBox1.BoundColumn = 3
            Debug.Print Me.ListBox1.Value  '结合上条BoundColumn属性设定的代码,输出选定行、第三列(列号2)的值
            注意:Value属性仅在MultiSelect = fmMultiSelectSingle(单选)时有效。由BoundColumn属性设定列号。选项按钮或复选框所在列不参与列号设定。
        35、Visible:可见性。设置或获取该属性值,该属性标识ListBox控件的可见性。
            Me.ListBox1.Visible = False  '值为0,隐藏控件
            Me.ListBox1.Visible = True  '值为1(默认值),控件可见
        36、Column:列。设置或获取该属性值,该属性标识ListBox控件列号(第一列列号为0)和行号(第一行行号为0)对应控件位置的值。
            语法:object.Column (Index, Row)  object代表ListBox控件对象
            参数:Index  必需  Long      范围可以从0到ColumnCount属性设置的列数减1
                      Row          可选   Variant  范围可以从0到ListCount属性返回的行数减去1
            示例:Debug.Print Me.ListBox1.Column(2, 5)  '输出第3列、第6行的值
            注意:(1)、有选项按钮或复选框的列,不参与列号计算;(2)第一个参数是列号、第二个参数是行号;(3)该属性可以对控件单独赋值。
        37、List:列表。设置或获取该属性值,该属性标识ListBox控件行号(第一行行号为0)和列号(第一列列号为0)对应控件位置的值。
            语法:object.List(row, column) [= Variant ]  object代表ListBox控件对象
            参数:row         可选  范围可以从0到ListCount属性返回的行数减去1,用数组或单元格区域整体赋值时此参数可忽略,单独赋值则为必需
                      column   可选  范围可以从0到ColumnCount属性设置的列数减1,当省略此参数则选定默认值第一列(列号0)
                      Variant    可选  为ListBox控件指定项目的内容,常用于用数组给ListBox控件赋值
            示例:Debug.Print Me.ListBox1.List(1, 2)  '输出第2行、第3列的值
                      Me.ListBox1.List(1, 2) = "ABC"  '把第2行、第3列的值设为"ABC"
                      Me.ListBox1.List(1) = "ABC"  '把第2行、第1列的值设为"ABC"
                      Me.ListBox1.List() = arr  '把数组arr赋值给ListBox控件,()可以不写,此时控件只显示一列,要显示多列需设置ColumnCount属性
            注意:(1)、有选项按钮或复选框的列,不参与列号计算;(2)第一个参数是行号、第二个参数是列号;(3)该属性可以对控件单独或整体赋值。
        38、ListCount:列表计数。获取该属性值,该属性标识ListBox控件中的总行数,常用于控件遍历中 For i = 1 To Me.ListBox1.ListCount
            Debug.Print Me.ListBox1.ListCount  '输出ListBox控件总行数
        39、ListIndex:列表索引。设置或获取该属性值,该属性标识ListBox控件被选定的行号
            Me.ListBox1.ListIndex = 5  '设置第6行为选定状态(第一行行号为0)
            Debug.Print Me.ListBox1.ListIndex  '输出当前选定的行号,常用在控件Click事件中,以判断被选定的行号
            注意:ListIndex属性仅在MultiSelect = fmMultiSelectSingle(单选)时有效。
        40、Name:名称。设置或获取该属性值,该属性标识ListBox控件的名称(属性窗口第一条属性)。
            Debug.Print Me.ListBox1.Name  '输出ListBox控件名称:ListBox1
            注意:不能在运行期间设置该属性。
        41、Object:对象。设置或获取该属性值,该属性标识ListBox控件中具有同名的属性和方法时重写标准属性或方法。
            语法:object.Object [. property |. method ]  object(第一个)代表ListBox控件对象
            参数:Object       必需    已添加到Microsoft Forms工具箱中的对象的名称
                      property    可选    与标准Microsoft Forms属性同名的属性
                      method     可选    与标准Microsoft Forms方法同名的方法
            示例:Me.ListBox1.Object.Font.Name = "宋体"  '设置ListBox控件字体
                      Debug.Print Me.ListBox1.Object.ColumnCount  '输出ListBox控件总列数
        42、Selected:选中。设置或获取该属性值,该属性标识ListBox控件是否选择了项。
            语法:object.Selected (lRow)  object代表ListBox控件对象
            参数:lRow          必需    Long型    列表框中的项。 第一项用零 (0) 表示,第二项用一 (1) 表示,依此类推。
            示例:Me.ListBox1.Selected(3) = True  '把第4行设为选中状态,如设为False则为取消选中状态
                      Debug.Print Me.ListBox1.Selected(0)  '输出ListBox控件第一行的选中状态
                      If Me.ListBox1.Selected(i) Then  '如果第i行被选中,则....,常用在遍历项时判断行是否被选中。
            注意:(1)、ListIndex属性只在单选状态下设置或获取选定的行,没有参数;(2)、Selected属性不论单选多选,根据行号设置或获取选定的状态。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:38 | 显示全部楼层
    三、常用方法
        1、AddItem:添加项目。将新项目添加到ListBox控件中显示。该方法添加数据为不绑定数据源操作,限制最多10列(0-9)。
            语法:expression.AddItem (Item)  expression表示ListBox对象的变量
            参数:Item    可选    String型        新添行第一列的显示文本。如果省略此参数,则在列表的末尾添加一空行
            示例:Me.ListBox1.AddItem ("ABC")  '在列表的末尾添加一行,第一列显示“ABC”
                      Me.ListBox1.AddItem  '在列表的末尾添加一空行,可用List属性对其赋值(参照第37条):Me.ListBox1.List(1, 2) = "ABC"
            注意:AddItem方法不能对已绑定数据源的列表进行操作(AddItem方法以外其它属性或方法添加项目的列表)
        2、Clear:清除。删除ListBox控件中的所有项目。
            语法:expression.Clear  expression表示ListBox对象的变量
            示例:Me.ListBox1.Clear
            注意:Clear方法不能用于RowSource属性添加项目的控件,会提示无法辨认的错误。
        3、Move:移动。将ListBox控件移动到参数值指定的坐标。
            语法:expression.Move (Left, Top, Width, Height)  expression表示ListBox对象的变量
                      Left        必需    Variant    控件左边缘相对于主窗口(容器)左边缘的屏幕位置(以twips为单位,1缇等于1/1440英寸或1/567厘米)
                      Top        可选    Variant    控件上边缘相对于主窗口(容器)上边缘的屏幕位置(以twips为单位,1缇等于1/1440英寸或1/567厘米)
                      Width    可选    Variant    控件所需宽度(以twips为单位,1缇等于1/1440英寸或1/567厘米)
                      Height   可选    Variant    控件所需高度(以twips为单位,1缇等于1/1440英寸或1/567厘米)
            示例:Me.ListBox1.Move (9)  '控件向右移动9缇
                      Me.ListBox1.Move (-9)  '控件向左移动9缇
        4、SetFocus:设置焦点。将焦点移动到ListBox控件。
            语法:expression.SetFocus  expression表示ListBox对象的变量
            示例:Me.ListBox1.SetFocus
        5、RemoveItem:删除项目。从ListBox控件显示的列表中删除项目。
            语法:expression.RemoveItem (Index)
            参数:Index    必填    Variant型    要从列表中删除的行号(第一行行号为0,依此类推)
            示例:Me.ListBox1.RemoveItem (3)  '删除第4行
            注意:RemoveItem方法根据指定行号逐行删除项目,和Clear方法一样,不能用于RowSource属性添加项目的控件,会提示无法辨认的错误。
        6、ZOrder:Z顺序。将ListBox控件于 z-order 的前面或后面。
            语法:object. ZOrder ( [ zPosition ] )  object代表ListBox控件对象
            参数:zPosition    可选    控件在容器中的位置,位于 z-order 的前面或后面,取值如下:
                常量

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:39 | 显示全部楼层
    四、常用事件
        1、AfterUpdate:更新后。当控件中的数据在整个用户界面中更改时触发。
            语法:Private Sub object _AfterUpdate( )
            参数:object    必填    代表ListBox控件对象
            示例:当列表有数据更新后弹出提示
        Private Sub ListBox1_AfterUpdate()
            MsgBox "列表数据有更新!"
        End Sub
            注意:(1)、无论是否绑定控件(即RowSource属性为控件指定数据源时),都会发生AfterUpdate事件。无法取消此活动;
                       (2)、如果要取消更新(以恢复控件的上一个值),请使用BeforeUpdate事件并将cancel参数设置为True;
                       (3)、该事件发生在BeforeUpdate事件之后、当前控件的Exit事件之前,以及Tab键顺序中下一个控件的Enter事件之前。
        2、BeforeDragOver:在拖动之前。正在执行拖放操作时触发。
            语法:
        Private Sub object_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, _
                                    ByVal Data As MSForms.DataObject, _
                                    ByVal X As Single, ByVal Y As Single, _
                                    ByVal DragState As Long, _
                                    ByVal Effect As MSForms.ReturnEffect, _
                                    ByVal Shift As Integer)
            参数:
        object                必填        代表ListBox控件对象
        Cancel                必填        事件状态。 False 指示应由控件处理事件(默认)。 True 指示由应用程序处理事件
        Data                必填        在拖放操作中拖动的数据。 数据打包在 DataObject 中
        X, Y                必填         控件位置的水平和垂直坐标。 两个坐标都用磅来测量。 X 从控件的左边缘测量;Y 从控件的上边缘测量
        DragState        必填        被拖动数据的切换状态
        Effect                必填        拖放源支持的操作
        Shift                必填        指定 Shift、Ctrl 和 Alt 的状态
        DragState 的设置是:
                常量                        值        描述
            fmDragStateEnter                0        鼠标指针在目标的范围内
            fmDragStateLeave                1        鼠标指针在目标的范围外
            fmDragStateOver                2        鼠标指针在新位置,但仍保留在同一目标的范围内
        Effect 的设置是:
                常量                        值        描述
            fmDropEffectNone                0        不将拖放源复制或移动到拖放目标
            fmDropEffectCopy                1        将放置源复制到放置目标
            fmDropEffectMove                2        将放置源移动到放置目标
            fmDropEffectCopyOrMove        3        将拖放源复制或移动到拖放目标
        Shift 的设置为:
                常量                        值        描述
                                            0        Alt、Shift 和 Ctrl三键无任何键按下
            fmShiftMask                        1        已按下 Shift 键
            fmCtrlMask                        2        已按下 Ctrl 键
                                            3        已按下 Ctrl 和 Shift 键
            fmAltMask                        4        已按下 Alt 键
                                            5        已按下 Alt  和 Shift 键
                                            6        已按下 Alt 和 Ctrl 键
                                        7        已按下 Alt、Shift 和 Ctrl 键
        3、BeforeDropOrPaste:拖放或粘贴之前。在用户刚要将数据拖放或粘贴到对象上时触发。
            语法:
        Private Sub object_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, _
                                        ByVal Action As Long, _
                                        ByVal Data As MSForms.DataObject, _
                                        ByVal X As Single, ByVal Y As Single, _
                                        ByVal Effect As MSForms.ReturnEffect, _
                                        ByVal Shift As Integer)
            参数:object、Cancel、Data、X、Y、Effect、Shift参照BeforeDragOver事件
        Action                必填        基于当前键盘设置指示未决拖放操作的结果。
        Action 的设置是:
                常量                值        描述
            fmActionPaste                2        将所选对象粘贴到拖放目标中。
            fmActionDragDrop        3        指示用户已将对象从其源拖动到拖放目标,并在拖放目标上拖放。
        4、BeforeUpdate:更新之前。在控件中的数据更改之前触发。
            语法:Private Sub object _BeforeUpdate ( ByValCancelAs MSForms.ReturnBoolean)
            参数:object    必填    有效的对象
                      Cancel    必填    事件状态,值False指示控件应处理事件(默认),值True取消更新并指示应用程序应处理事件。
            注意:(1)、BeforeUpdate 事件的发生与控件是否绑定(即,“RowSource”属性指定控件的数据源时)无关;
                       (2)、此事件在控件的 AfterUpdate 和 Exit 事件之前(以及在接收焦点的下一个控件的输入事件之前)发生;
                       (3)、如果将Cancel参数设置为True,则焦点仍在该控件上,并且 AfterUpdate 事件和 Exit 事件都不会发生。
        5、Change:更改。在 Value 属性更改时触发。
            语法:Private Sub object _Change()
            参数:object    必填    有效的对象
            示例:当用鼠标或键盘箭头更改选择时输出第一列(列号0)的值
        Private Sub ListBox1_Change()
            Debug.Prin ListBox1.Value
        End Sub
            注意:(1)、Change事件在Value属性设置更改时发生,无论该更改是由执行代码还是由界面中的用户操作导致的;
                       (2)、有些情况下,当Value属性更改时,也可能会发生Click事件。 不过,使用Change事件是检测属性新值的首选方法;
                       (3)、当用鼠标或键盘箭头更改选择时往往会同时触发Change和Click事件,但Change事件会在Click事件之前发生。
        6、Click:单击。用户使用鼠标单击控件或用户明确地为具有多个可能值的控件选择一个值时触发(如键盘箭头键)。
            语法:Private Sub object_Click()
            参数:object    必填    有效的对象
            示例:当用鼠标或键盘箭头更改选择时输出当前行号,第一行行号为0,以此类推
        Private Sub ListBox1_Click()
            Debug.Print ListBox1.ListIndex
        End Sub
        7、DblClick:双击。用户使用鼠标双击控件时触发。
            语法:Private Sub object_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
            参数:object    必填    有效的对象
                      Cancel    必填    事件状态,值False指示控件应处理事件(默认),值True取消更新并指示应用程序应处理事件。
            示例:双击控件则清空列表
        Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
            Me.ListBox1.Clear
        End Sub
        8、Enter:进入。在控件实际收到来自同一窗体上的另一控件的焦点(获得焦点)之前触发。
            语法:Private Sub object_Enter()
            参数:object    必填    有效的对象
            示例:当通过鼠标点击、加载窗体、Tab键获得焦点时,输出控件名称
        Private Sub ListBox1_Enter()
            Debug.Print Me.ListBox1.Name
        End Sub
            注意:鼠标点击、加载窗体、Tab键都会触发Enter事件。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
        9、 Error:错误。在控件检测到错误且无法将该错误信息返回到调用程序时触发。
            语法:Private Sub object_Error(ByVal Number As Integer, ByVal Description As MSForms.ReturnString, _
                ByVal SCode As Long, ByVal Source As String, ByVal HelpFile As String, _
                ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
            参数:object            必填        有效的对象
                      Number        必填        指定控件用于标识该错误的唯一值。
                      Description        必填        该错误的文字描述。
                      SCode        必填        指定该错误的 OLE 状态代码。 低顺序 16 比特指定与 Number 参数完全相同的值。
                      Source        必填        标识启动事件的控件的字符串。
                      HelpFile        必填        指定描述该错误的帮助文件的完全限定路径名。
                      HelpContext        必填        指定包含该错误描述的帮助文件主题的上下文 ID。
                      CancelDisplay        必填        指定是否在消息框中显示该错误字符串。
        10、 Exit:退出。在焦点从控件转移到另一个控件(失去焦点)前一刻触发。
            语法:Private Sub object_Exit(ByVal Cancel As MSForms.ReturnBoolean)
            参数:object            必填        有效的对象
                      Cancel        必填        事件状态,False指示应由控件处理事件(默认)。 True指示应用程序处理事件,焦点应保留在当前控件上。
            示例:当控件即将失去焦点时弹出提示,选择是继续留在当前控件,选择否跳转至另一个控件
        Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
            If MsgBox("是否继续编辑?", vbYesNo + vbQuestion, "提示信息") = vbYes Then Cancel = True
        End Sub
            注意:鼠标点击、卸载窗体、Tab键都会触发Exit事件。
        11、KeyDown:按下键。当控件有焦点且键盘有键按下时触发。
            语法:Private Sub object_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
            参数:object        必填    有效的对象
                      KeyCode    必填    按下键的键代码,该参数不能返回Shift组合按键值,会先返回Shift键编码16,再返回其它按键编码
              Shift           必填    Shift、Ctrl 和 Alt 键的状态
        Shift 的设置为:
                常量                        值        描述
                                            0        Alt、Shift 和 Ctrl三键无任何键按下
            fmShiftMask                        1        已按下 Shift 键
            fmCtrlMask                        2        已按下 Ctrl 键
                                            3        已按下 Ctrl 和 Shift 键
            fmAltMask                        4        已按下 Alt 键
                                            5        已按下 Alt  和 Shift 键
                                            6        已按下 Alt 和 Ctrl 键
                                        7        已按下 Alt、Shift 和 Ctrl 键
            示例:按下按键时,输出三键状态和按键值
        Private Sub ListBox1_KeyDown(KeyCode As Integer, ByVal Shift As Integer)
            Debug.Print Shift
            Debug.Print KeyCode
        12、KeyPress:按键。当控件有焦点且当用户按某个ANSI键时触发。
            语法:Private Sub object_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
            参数:object        必填    有效的对象
                      KeyAscii     必填    按键的Ascii编码值,该参数能返回和Shift键组合按键值。
            示例:输出按键Ascii编码值和对应的字符
        Private Sub ListBox1_KeyPress(KeyAscii As Integer)
            Debug.Print KeyAscii
            Debug.Print Chr(KeyAscii)
        End Sub
        13、KeyUp:松开键。当控件有焦点且键盘有键松开时触发。
            语法:Private Sub object_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
            参数:参照KeyDown事件
            示例:松开按键时,输出三键状态和按键值
        Private Sub ListBox1_KeyUp(KeyCode As Integer, ByVal Shift As Integer)
            Debug.Print Shift
            Debug.Print KeyCode
        End Sub
        14、MouseDown:按下鼠标。当控件有焦点且鼠标有按下键时触发。
            语法:Private Sub object_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
            参数:object        必填    有效的对象
                      Button       必填    标识导致事件发生的鼠标按钮的整数值
              Shift           必填    Shift、Ctrl 和 Alt 键的状态
              X, Y                 必填    水平或垂直位置(以磅为单位),从控件的左边缘或上边缘。
        Button 的设置为:
                常量                值        描述
            fmButtonLeft                1        已按下左按钮。
            fmButtonRight                2        已按下右按钮。
            fmButtonMiddle        4        已按下中间按钮。
        Shift 的设置为:
                常量                        值        描述
                                            0        Alt、Shift 和 Ctrl三键无任何键按下
            fmShiftMask                        1        已按下 Shift 键
            fmCtrlMask                        2        已按下 Ctrl 键
                                            3        已按下 Ctrl 和 Shift 键
            fmAltMask                        4        已按下 Alt 键
                                            5        已按下 Alt  和 Shift 键
                                            6        已按下 Alt 和 Ctrl 键
                                        7        已按下 Alt、Shift 和 Ctrl 键
            示例:当按下鼠标时,输出鼠标按钮值、三键(Alt、Shift 和 Ctrl 键)值、坐标值
        Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
            Debug.Print "Button:" & Button
            Debug.Print "Shift:" & Shift
            Debug.Print "X:" & x
            Debug.Print "Y:" & y
        End Sub
        15、MouseMove:鼠标移动。当控件有焦点且鼠标在控件内移动时触发。
            语法:Private Sub object_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
            参数:参照MouseDown事件,Button为0时无鼠标按键
            示例:当移动鼠标时,输出鼠标按钮值、三键(Alt、Shift 和 Ctrl 键)值、坐标值
        Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
            Debug.Print "Button:" & Button
            Debug.Print "Shift:" & Shift
            Debug.Print "X:" & x
            Debug.Print "Y:" & y
        End Sub
        16、MouseUp:松开鼠标。当控件有焦点且鼠标有松开键时触发。
            语法:Private Sub object_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
            参数:参照MouseDown事件
            示例:当松开鼠标时,输出鼠标按钮值、三键(Alt、Shift 和 Ctrl 键)值、坐标值
        Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
            Debug.Print "Button:" & Button
            Debug.Print "Shift:" & Shift
            Debug.Print "X:" & x
            Debug.Print "Y:" & y
        End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
    五、添加列表项目示例
        1、添加一列:有重复项,先用字典Key的唯一性取值,再用List属性添加。
        Dim d As Object, i&, last&
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        arr = Sheet1.Range("A2:F" & last)
        Set d = CreateObject("scripting.dictionary")
        For i = 1 To UBound(arr)
            If arr(i, 1) <> "" Then d(arr(i, 1)) = Empty
        Next
        Me.ListBox1.List = d.keys
        2、添加一列:确认没有重复项,但有合并单元格,先判断再用Additem函数添加。
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        For i = 3 To last
                If Sheet1.Cells(i, 1) <> "" Then Me.ListBox1.AddItem (Sheet1.Cells(i, 1))
        Next
        3、添加一列:没有合并单元格也没有重复项,用数组或整体区域,List属性添加。
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        arr = Sheet1.Range("A3:F" & last)
        Me.ListBox1.List = Application.Index(arr, 0, 1)
                 或:
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        Me.ListBox1.List = Sheet1.Range("A2:A"&last).Value
                 或:
        Me.ListBox1.List = Array("男","女")
        4、添加多列:没有合并单元格也不考虑重复项,用数组或整体区域,List属性添加。
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        arr = Sheet1.Range("A2:F" & last)
        Me.ListBox1.ColumnCount = UBound(arr, 2) '根据数组维度设置显示的总列数
        Me.ListBox1.List = arr
                 或:
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        Me.ListBox1.ColumnCount = 6 '根据区域A-F列数设置显示的总列数
        Me.ListBox1.List = Sheet1.Range("A2:F"&last).Value
                 或:
        last = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
        Set mr = Sheet1.Range("A1:E" & last)
        Me.ListBox1.ColumnCount = mr.Columns.Count '根据区域总列数设置显示的总列数
        Me.ListBox1.List = mr.Value '不加Value会报错:无法设置List属性。属性阵列索引无效。
        5、添加多列:没有合并单元格也不考虑重复项,用RowSource属性指定数据源(设置标题唯一用法,参照常见属性第26条)
        Me.ListBox1.ColumnCount = 5 '根据区域A-E列数设置显示的总列数
        Me.ListBox1.RowSource = "Sheet1!A2:E" & last  或
        Me.ListBox1.RowSource = Sheet1.Range("A2:E" & last).Address(External:=True)
        6、添加多列:循环用Additem方法添加,该方法添加数据为不绑定数据源操作,限制最多10列(0-9),参照常用方法第1条。
                With Me.ListBox1
                    '设置列数
                    .ColumnCount = 3
                    For i = 0 To 10
                        '先添加空行
                        .AddItem
                        '然后设置当前行的前3列的数据
                        '行列的编号都是以0开始计算的
                        .List(i, 0) = "a" & i
                        .List(i, 1) = "b" & i
                        .List(i, 2) = "c" & i
                    Next i
                End With

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 16:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 tanglf188 于 2023-7-6 16:49 编辑

    六、示例
        1、两个列表框之间拖动数据。这在没有规律的数据手动排序时非常有用
        2、点击列表加载数据至编辑区编辑。
        3、指定列表、指定工作表、指定单元格保存数据。
image.png


ListBox应用(编辑、拖动、保存).zip

46.96 KB, 下载次数: 341

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-7-6 17:16 | 显示全部楼层
大部分人没耐心仔细看开发文档,所以文字性的内容,没有吸引力,实例是个好东西。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-6 17:27 | 显示全部楼层
本帖最后由 tanglf188 于 2023-7-6 17:28 编辑
micch 发表于 2023-7-6 17:16
大部分人没耐心仔细看开发文档,所以文字性的内容,没有吸引力,实例是个好东西。

的确这样,但我也不仅是分享给大家,一来这些都是我微软官网慢慢整理、调试出来的,有兴趣或用得着的时候可以过来查阅一下,二来每个属性、方法下面都是示例用法,用过一次就明白了,三来我汇总的资料相对来说是比较全面的了,所以看起来篇幅较多。
感谢建议。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-3 21:13 , Processed in 0.044395 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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