当前位置:首页>Excel>Excel VBA的字符串补充篇

Excel VBA的字符串补充篇

  • 2026-04-04 18:08:48
Excel VBA的字符串补充篇

VBA 字符串处理拓展:从拼接到清洗,这几个常用函数一起讲明白

我们在上一篇的字符串内容里,已经讲了 VBA 字符串的一些基础知识。

比如什么是字符串,双引号怎么用,数字和数字字符串有什么区别,字符串拼接该怎么写,这些最基础的部分,前面都已经讲过了。

但字符串在我们的工作中真的太常用了。

客户名称、订单编号、部门名称、备注内容、状态字段、通知文案、地址信息,这些几乎天天都会碰到。很多时候,代码跑不顺,问题还真不一定出在循环或者判断上,反而是字符串这里藏着一些细小但高频的坑。

再往后写一点 VBA 你就会发现,字符串这块不是“知道一点就够了”的内容。尤其是当你开始批量生成文案、清洗文本、提取字段、替换内容的时候,字符串处理能力几乎就是基本功。

所以这一篇,我把字符串再往前整理一步。

一方面补几个在实操里特别容易出问题的点,另一方面把几个真正常用的字符串函数也一起合并进来,放到同一篇里讲清楚。

希望能对大家有所帮助。


一、固定文本和变量,先分清楚

这个地方看起来基础,但真的很容易反复出错。

比如你想把“已完成”写进单元格里,应该写成:

  • 1
Range("D2").Value = "已完成"

这里的“已完成”是固定文本,所以必须放在双引号里。

但如果你前面已经定义了一个变量,比如:

  • 1
  • 2
Dim statusText AsStringstatusText = "已完成"

那后面再写入单元格时,就应该写成:

  • 1
Range("D2").Value = statusText

因为这时候写进去的,不是字面上的 statusText 这几个字,而是这个变量里存着的内容。

这个区分很重要。

我自己写字符串相关代码时,脑子里一般都会先过一遍:

我现在写的是固定文案,还是变量里的值。

这个动作看起来很小,但能帮你挡掉很多低级错误。


二、字符串想换行,不能直接敲回车

这一点在生成通知文案的时候特别常见。

有时候我们想在一个单元格里放两行内容,比如第一行是客户名,第二行是预约时间。很多人第一反应是直接在双引号中间按回车。

在 VBA 里,这样写不行。

字符串本身不能直接跨行写。想换行,得插入换行符,最常用的就是 vbNewLine

比如下面这张安装预约表,我想在 D 列自动生成两行提醒内容。

A
B
C
D
1
客户
安装日期
时间段
提醒内容
2
周岚
4月8日
09:00-11:00
3
许川
4月9日
14:00-16:00
4
林悦
4月10日
10:00-12:00
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
Sub BuildInstallNotice()Dim i AsLongDim customerName AsStringDim installDate AsStringDim timePeriod AsStringDim noticeText AsStringFor i = 2To4'逐行处理安装预约数据        customerName = Cells(i, 1).Value   'A 列:客户姓名        installDate = Cells(i, 2).Value    'B 列:安装日期   timePeriod=Cells(i,3).Value 'C 列:时间段   noticeText="客户:"&customerName&vbNewLine&"预约:"&installDate&" "&timePeriod '中间插入换行符        Cells(i, 4).Value = noticeText   '把结果写入 D 列Next iEndSub

这里最关键的不是案例本身,而是你要先把这个习惯建立起来:

在 VBA 里,换行不是靠敲回车,而是靠插入换行符。


三、看起来是空的,不一定真的就是空

字符串处理里还有一个特别高频的问题,就是“空”。

很多单元格看起来像没填内容,但程序判断的时候,就是不按预期走。

原因往往不复杂:

它看着空,不代表它真的空。

比如下面这两个就不是一回事:

  • 1
  • 2
"""   "

第一个是空字符串,里面一个字符都没有。

第二个里面其实有内容,只不过内容是空格,所以肉眼不太容易看出来。

再往下一层,有些单元格里还可能夹着前后空格、复制粘贴留下来的空白字符,或者换行符。这种东西平时看表格很难看出来,但一比较、一判断,就开始出问题。

所以字符串处理到后面,你会越来越发现:

很多“看起来不正常”的判断结果,本质上不是逻辑写错了,而是文本本身不干净。

这时候,字符串函数就开始真正派上用场了。


四、别太依赖 VBA 替你“猜意思”

这一点,我觉得也挺重要。

前面我们说过,数字和数字字符串不是一回事。

123 是数字。"123" 是字符串。

这个道理其实不难理解,但一到真正写代码的时候,问题就出来了。因为 VBA 有时候会自己帮你“猜”。

比如下面这种写法:

  • 1
Cells(24).Value = "120" * 2

你乍一看,会觉得这不是拿字符串去乘数字吗,好像不太合理。

但 VBA 很可能真的给你算出 240

原因就在于,它会先尝试把 "120" 自动转成数值,再继续参与运算。也就是说,你看到的是字符串,VBA 看到的却可能是“这个东西看起来像数字,那我先把它当数字试试”。

这个特性有时候看着像是在帮忙,但写代码的时候,反而容易让人产生误判。

比如你本来只是想处理文本,结果程序偷偷帮你做了数值转换;或者你本来以为这里一定会报错,结果它居然又给你跑出了一个结果。

这种情况一多,代码就会变得不够稳。

所以我自己在写字符串相关内容的时候,会尽量坚持一个比较死板、但很省事的习惯:

只要是拼文本,就统一用 &只要是做运算,就尽量保证两边本来就是数字。

不要把“它应该懂我的意思”当成写代码的依据。

尤其是 + 这个符号,在 VBA 里最容易把字符串拼接和数字加法混到一起。你自己以为是在拼内容,程序未必这么理解。

比如下面这两种写法,看着都像在“把东西放到一起”,但实际含义完全不一样:

  • 1
Range("E2").Value = "120" & "30"

这句是字符串拼接,结果会是:

  • 1
12030

而下面这句:

  • 1
Range("E3").Value = "120" + 30

VBA 很可能会先把 "120" 转成数字,再去做加法,最后结果就是:

  • 1
150

所以同样是“看起来差不多”的写法,最后跑出来的东西可能完全不是一回事。

这也是为什么,到了字符串这块之后,我基本不太建议再用 + 去拼文本了。

不是说它绝对不能用,而是它太容易让代码的意图变得模糊。你自己今天看得懂,过几天回来改,或者换个人接手,就未必还能一眼看清楚这里到底是在做拼接,还是在做运算。

字符串处理这块,很多时候稳定比省事更重要。

能让程序少猜一点,就尽量让它少猜一点。


五、先讲一个最常用的:Len

Len 用来计算字符串长度。

这个函数看起来很简单,但在实际工作里很常用。比如你想判断一个订单号是不是长度不对,手机号是不是少位数,客户编码是不是格式异常,都可以先用 Len 去做一个初筛。

比如下面这张客户信息表,我想检查手机号长度是不是 11 位。

A
B
C
1
客户名
联系电话
检查结果
2
昊辰贸易
13812345678
3
远川数据
1394567890
4
青岳科技
18623456789
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
Sub CheckPhoneLength()Dim i AsLongDim phoneText AsStringFor i = 2To4'逐行检查手机号        phoneText = Cells(i, 2).Value   'B 列:联系电话If Len(phoneText) = 11Then'如果长度等于 11            Cells(i, 3).Value = "格式正常"Else            Cells(i, 3).Value = "位数异常"EndIfNext iEndSub

这个函数本身不复杂,但很适合做第一道筛选。


六、清理空格最常用的函数:Trim

如果说有哪个字符串函数是我觉得最该早点用起来的,那基本就是 Trim

它的作用很直接:

去掉字符串两端多余的空格。

这个在实际工作里真的太常见了。有些数据是复制过来的,有些是别人手填的,有些是从系统里导出来的。看着都差不多,实际上前后藏了空格,一比较就出问题。

比如下面这张部门表,我想判断部门名是不是“销售部”,但 B 列里的内容前后空格不统一。

A
B
C
1
姓名
部门
判断结果
2
赵航
销售部
3
林珂
销售部
4
周扬
销售部

这里你肉眼看不一定看得出来,但有的单元格前后其实带了空格。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
Sub CheckDepartment()Dim i AsLongDim deptText AsStringFor i = 2To4'逐行检查部门名称        deptText = Trim(Cells(i, 2).Value)   '先去掉前后空格,再拿来比较If deptText = "销售部"Then            Cells(i, 3).Value = "匹配成功"Else            Cells(i, 3).Value = "名称异常"EndIfNext iEndSub

这类代码我自己真的经常写。

很多时候,不是数据错了,而是数据脏了。Trim 这种函数,就是专门收拾这种问题的。

顺手补一句:

  • Trim:去掉两端空格
  • LTrim:只去左边空格
  • RTrim:只去右边空格

平时最常用的还是 Trim


七、批量替换内容,很适合用 Replace

再往下一个特别常用的函数,就是 Replace

它的作用也很直白:

把字符串里的某段内容替换成新的内容。

这个函数很适合批量统一字段。

比如有的表里写“待跟进”,有的写“未跟进”,还有的写“待联系”,你想把它们统一成一个标准写法,就很适合用 Replace

下面这个例子里,我想把备注里的“待联系”统一改成“待跟进”。

A
B
C
1
客户名
备注
处理后备注
2
朗新供应
待联系,周二回访
3
云澜科技
已报价,待联系
4
嘉衡商贸
待联系,信息未补全
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
Sub ReplaceRemarkText()Dim i AsLongDim oldRemark AsStringFor i = 2To4'逐行替换备注内容        oldRemark = Cells(i, 2).Value   'B 列:原备注   Cells(i,3).Value=Replace(oldRemark,"待联系","待跟进"'把指定文字替换掉Next iEndSub

这个函数看起来只是“替换文字”,但在日常表格清洗里特别实用。

比如统一部门写法、统一状态名称、统一电话前缀、统一某个标签的格式,都能用。


八、提取部分文本,最常用的是 LeftRightMid

字符串处理再往后,很常见的一类需求就是:

我不是要整段文本,我只想取其中一部分。

这时候最常用的就是这三个函数:

  • Left:从左边取
  • Right:从右边取
  • Mid:从中间取

这个在订单号、客户编码、日期片段、部门编号这些场景里特别常见。

1. Left:从左边取几个字符

比如订单编号前两位代表渠道,我想把它单独拆出来。

A
B
1
订单编号
渠道代码
2
WX240518
3
JD240631
4
TM240742
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
Sub GetChannelCode()Dim i AsLongDim orderCode AsStringFor i = 2To4'逐行提取渠道代码        orderCode = Cells(i, 1).Value   'A 列:订单编号        Cells(i, 2).Value = Left(orderCode, 2)   '从左边取前 2 个字符Next iEndSub

2. Right:从右边取几个字符

比如工号最后 3 位代表个人编号,我只想把末尾 3 位拿出来。

A
B
1
员工工号
个人编号
2
HR2024101
3
MK2024128
4
OP2024176
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
Sub GetEmployeeSuffix()Dim i AsLongDim staffCode AsStringFor i = 2To4'逐行提取末尾编号        staffCode = Cells(i, 1).Value   'A 列:员工工号        Cells(i, 2).Value = Right(staffCode, 3)   '从右边取后 3 个字符Next iEndSub

3. Mid:从中间截取一段

Mid 更灵活一点。

它可以指定“从第几个字符开始,取几个字符”。

比如订单号 WX240518,我想取中间的 2405 这一段。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
Sub GetMiddlePart()Dim codeText AsString    codeText = "WX240518"    Range("D2").Value = Mid(codeText, 34)   '从第 3 个字符开始,取 4 个字符EndSub

这三个函数我自己用得非常多。

因为现实里的很多文本字段,本身就是“拼起来”的。既然能拼,自然也就经常需要拆。


九、大小写统一,也很常见

有时候字符串出问题,不是空格,也不是格式,而是大小写不统一。

比如币种、部门编码、产品代号这些,有人写大写,有人写小写,比较的时候就容易对不上。

这时候可以用:

  • UCase:转成大写
  • LCase:转成小写

比如你想先把币种统一转成大写,再去判断:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
Sub CheckCurrency()Dim curText AsString    curText = UCase(Range("B2").Value)   '先统一转成大写If curText = "USD"Then        Range("C2").Value = "美元"EndIfEndSub

这个思路其实挺实用:

先把格式统一,再做判断。

这样会稳很多。


十、字符串拼接,本质上是在按模板生成文本

前面讲的这些函数,最终还是要落到实际工作里。

而字符串在工作里最常见的用途,还是拼接。

只不过拼接到后面,你会发现它已经不是“把几个内容连起来”这么简单了,而是在按模板批量生成文案。

比如通知、备注、说明、回访内容、发货提示,这些都属于这一类。

下面这个例子,就是一个很典型的场景:根据客户名、产品名和预约时间,自动生成一段回访提醒。

A
B
C
D
1
客户名
产品名称
回访时间
提醒文案
2
星岳科技
数据看板服务
4月12日 10:00
3
青禾商贸
经营分析模板
4月12日 15:30
4
云拓供应
自动报表方案
4月13日 09:00
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
Sub BuildFollowText()Dim i AsLongDim customerName AsStringDim productName AsStringDim followTime AsStringDim followText AsStringFor i = 2To4'逐行生成回访提醒        customerName = Trim(Cells(i, 1).Value)   'A 列:客户名,顺手去掉前后空格        productName = Trim(Cells(i, 2).Value)    'B 列:产品名称   followTime=Cells(i,3).Value 'C 列:回访时间   followText=customerName&",您好,您预约的“"&productName&"”回访时间为 "&followTime&",请提前做好安排。"'按固定模板拼接文案        Cells(i, 4).Value = followText   '把结果写入 D 列Next iEndSub

这里你会发现,前面讲过的内容其实都串起来了:

  • 固定文本放双引号里
  • 变量写在双引号外
  • 拼接优先用 &
  • 如果数据来源不干净,可以先 Trim
  • 如果后面还要拆字段,就可以再配合 LeftRightMid

字符串这块,真正用顺以后,很多文本类自动化就会开始变得很自然。


十一、最后收一下这篇文章的重点

这一篇其实做了两件事。

第一件事,是把字符串里几个特别容易在实操里踩坑的地方,再往前补了一步:

  • 固定文本和变量要分清
  • 字符串不能直接敲回车换行
  • 看起来空,不一定真的空
  • 不要太依赖 VBA 自动帮你猜类型

第二件事,是把几个真正高频的字符串函数合到一起,统一讲清楚了:

  • Len:看长度
  • Trim:清空格
  • Replace:做替换
  • LeftRightMid:截取部分文本
  • UCaseLCase:统一大小写

这些函数单个看都不复杂,但一旦结合到表格清洗、字段提取、备注生成、通知拼接这些场景里,就会特别好用。

相信看到这里,大家会觉得这些函数特别熟悉。确实,这里面用到的很多函数,跟 Excel 公式里的函数都是差不多的。

到这里我还想说一点,其实我们在 VBA 里面也可以直接使用 Excel 函数。这里暂且不说,等到后面用上的时候,我们再单独拿出来讲。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-06 19:37:20 HTTP/2.0 GET : https://h.sjds.net/a/494805.html
  2. 运行时间 : 0.215757s [ 吞吐率:4.63req/s ] 内存消耗:4,502.81kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=76344c878ed99f23bc48708cd7df34d1
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000314s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000749s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006831s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002012s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000544s ]
  6. SELECT * FROM `set` [ RunTime:0.000233s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000553s ]
  8. SELECT * FROM `article` WHERE `id` = 494805 LIMIT 1 [ RunTime:0.006215s ]
  9. UPDATE `article` SET `lasttime` = 1775475440 WHERE `id` = 494805 [ RunTime:0.008999s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.004256s ]
  11. SELECT * FROM `article` WHERE `id` < 494805 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002326s ]
  12. SELECT * FROM `article` WHERE `id` > 494805 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.013807s ]
  13. SELECT * FROM `article` WHERE `id` < 494805 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.020946s ]
  14. SELECT * FROM `article` WHERE `id` < 494805 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.050768s ]
  15. SELECT * FROM `article` WHERE `id` < 494805 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.028789s ]
0.217503s