ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

菜鸟谈VBA最最基础入门《原创》

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-2-10 14:33 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
Dim arrInt(), arrStr(), arrSplit() As String
    arrInt() = Array(1, 5, 3, 8)                    ' 使用Array不需要定义数组类型
    arrStr = Array("张三", "李四", "王五", "赵六")
    arrSplit = Split("apple,boy,cat,dog", ",") '使用Split要定义数组类型
    [a1].Resize(1, 4) = arrInt
    Range("a2:d2") = arrStr
    Range("a3:d3") = arrSplit

TA的精华主题

TA的得分主题

发表于 2018-2-10 16:11 | 显示全部楼层
join函数只能对一维数组有效,对二维会出错
arr() = range("a1:c1")
这种赋值,数组会变成一个假二维数组
[a1] = arr(1)这种会报错,只能是[a1] = arr(1,1)

TA的精华主题

TA的得分主题

发表于 2018-2-10 20:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
草根糖 发表于 2009-9-28 12:49
楼主老师终于又出新章了。
能在百忙之中抽出时间来教我们,非常难得!
请接受我由衷的感谢!

I列要显示汉字呀。你的显示不了

TA的精华主题

TA的得分主题

发表于 2018-2-10 21:22 | 显示全部楼层
trustwxq 发表于 2009-9-27 22:36
增加了两个功能,一是:输入小写变成大写,二是:输入的是字母但代码对应表中如果没有时,选择指定对应关系 ...

完全不行啊

TA的精华主题

TA的得分主题

发表于 2018-2-11 11:03 | 显示全部楼层
zznjcs 发表于 2009-9-30 14:11
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
   If Target.Count = 1 ...

用On Error Resume Next会忽略错误,直接走下一句。这其实应该不是很好的调试手段,精简流程调试可以用。
之所以会发生不能使用vlookup属性,原因是找不到结果。
其实整个过程是发生了3次的change变化的。
1.你输入Q,回车后触发第一次
2.Target.Offset(0, 1).Value值发生变化后触发第二次
3.执行完Target.Value 语句后,改成“青龙“后触发第三次。这次vlookup会以"青龙"来找,肯定就找不到结果就报错了

TA的精华主题

TA的得分主题

发表于 2018-2-11 11:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
阿龙168 发表于 2009-10-10 09:50
赫赫(喘个大气先),虽然不是一口气读完,但也只用了几口气而已,
由于初次接触VB一下子赶不上来,加上时 ...

Sub ggsmart()
      Dim arr(1 To 100) As Integer '声明数组名称及数据类型
      For i = 1 To 100 '循环,为数组的元素赋值
        arr(i) = i
      Next
      [a1].Resize(100, 1) = arr
    End Sub

因为定义数组默认都是默认横向的,不是纵向的。
[a1].resize(1,100):1行100列,就是横向展示1-100
如果你想纵向展示的话,只能使用TRANSPOSE函数了

TA的精华主题

TA的得分主题

发表于 2018-2-11 11:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
阿龙168 发表于 2009-10-10 15:57
笨啊,看了你的解释后研究了一个下午,还是有个问题没弄明白。
ub ggsmart2()
      Dim arr(1 To 100) A ...

arr(i),你只是对单数号赋值了
双数号都没赋值,初始值为0

TA的精华主题

TA的得分主题

发表于 2018-2-11 11:34 | 显示全部楼层
阿龙168 发表于 2009-10-12 14:44
首先非常感谢老师的热心及其耐心的解释、指导。
希望老师不要觉得我烦,因为我问题比较多而且都是小问题, ...

定义变量并不是多余的
excel里面的vba对于变量的定义限制比较宽松。用的时候才定义就默认为0,但是这种习惯不太好。
如果使用了Option Explicit,就必须先定义变量才能使用,否则会报错的

TA的精华主题

TA的得分主题

发表于 2018-2-20 16:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
哇! 这个非常好耶! 感谢啦!

TA的精华主题

TA的得分主题

发表于 2018-2-21 17:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不错,打算购入一本
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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