Excel精英培训网

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

[已解决]求助求助急急急,本人有点笨,麻烦越简单越好

[复制链接]
发表于 2017-5-26 12:02 | 显示全部楼层 |阅读模式

最佳答案
2017-5-26 17:08
本帖最后由 0126 于 2017-5-26 17:39 编辑


Sub b()
On Error Resume Next                                             '程序出错不提醒继续执行下一句
Dim a, x, z, y, sh, ay, at, yq, tc                                '所有变量声明
sh = ActiveSheet.Cells(1, 250).End(xlToLeft).Column              '查找当前第一列有数据的最后一个单元格在第几列
For a = 1 To sh                                                  '循环第一列单元格
If InStr(Cells(1, a), "要求数量") Then                           '判断单元格Cells(1, a)是否有 要求数量 标题的单元格,有查询到就赋值并结束循环
  ay = a
  Exit For
End If
Next

For a = 1 To sh                                                     '下同
If InStr(Cells(1, a), "填充") Then
  at = a
  Exit For
End If
Next

yq = ActiveSheet.Cells(16666, ay).End(xlUp).Row                  '要求数量列有数据的最后一个单元格是哪行
tc = ActiveSheet.Cells(16666, at).End(xlUp).Row                  '填充列有数据的最后一个单元格是哪行
For x = 2 To yq                                                  '第几行要求数量
For z = 1 To Cells(x, ay)                                       '确定填充的次数
  For y = 2 To tc                                                '对填充行全部执行对比
   If Cells(y, at - 1) = Cells(x, ay - 1) And (InStr(Cells(y, at), "ok") Or InStr(Cells(y, at), "OK")) Then   '确定名称对应 并且 填充列有大写OK或者有小写ok
     Cells(y, at) = "yes"
     Exit For
   End If
  Next
Next
Next
End Sub


工作簿1.rar

10.76 KB, 下载次数: 19

原文件

 楼主| 发表于 2017-5-26 14:28 | 显示全部楼层
回复

使用道具 举报

发表于 2017-5-26 17:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 0126 于 2017-5-26 17:39 编辑


Sub b()
On Error Resume Next                                             '程序出错不提醒继续执行下一句
Dim a, x, z, y, sh, ay, at, yq, tc                                '所有变量声明
sh = ActiveSheet.Cells(1, 250).End(xlToLeft).Column              '查找当前第一列有数据的最后一个单元格在第几列
For a = 1 To sh                                                  '循环第一列单元格
If InStr(Cells(1, a), "要求数量") Then                           '判断单元格Cells(1, a)是否有 要求数量 标题的单元格,有查询到就赋值并结束循环
  ay = a
  Exit For
End If
Next

For a = 1 To sh                                                     '下同
If InStr(Cells(1, a), "填充") Then
  at = a
  Exit For
End If
Next

yq = ActiveSheet.Cells(16666, ay).End(xlUp).Row                  '要求数量列有数据的最后一个单元格是哪行
tc = ActiveSheet.Cells(16666, at).End(xlUp).Row                  '填充列有数据的最后一个单元格是哪行
For x = 2 To yq                                                  '第几行要求数量
For z = 1 To Cells(x, ay)                                       '确定填充的次数
  For y = 2 To tc                                                '对填充行全部执行对比
   If Cells(y, at - 1) = Cells(x, ay - 1) And (InStr(Cells(y, at), "ok") Or InStr(Cells(y, at), "OK")) Then   '确定名称对应 并且 填充列有大写OK或者有小写ok
     Cells(y, at) = "yes"
     Exit For
   End If
  Next
Next
Next
End Sub


提醒功能.png
限制为字母.png
没有搜到手输入.png
回复

使用道具 举报

 楼主| 发表于 2017-5-27 12:46 | 显示全部楼层
0126 发表于 2017-5-26 17:08
Sub b()
On Error Resume Next                                             '程序出错不提醒继续执行 ...

好难[em19],看不懂
回复

使用道具 举报

发表于 2017-5-27 15:21 | 显示全部楼层
本帖最后由 0126 于 2017-5-27 15:26 编辑


公式看不懂,还是哪里看不懂,要是公式看不懂的话建议看下兰色幻想大大的vbn80,很简单易懂,只要看了3,4集就会知道了
回复

使用道具 举报

 楼主| 发表于 2017-5-27 15:44 | 显示全部楼层
0126 发表于 2017-5-27 15:21
公式看不懂,还是哪里看不懂,要是公式看不懂的话建议看下兰色幻想大大的vbn80,很简单易懂,只要看了3 ...

好的谢谢
回复

使用道具 举报

 楼主| 发表于 2017-6-5 16:32 | 显示全部楼层

能帮我弄弄这个吗?简单的不要用函数可以吗?

工作簿1.rar

8.04 KB, 下载次数: 5

回复

使用道具 举报

发表于 2017-6-5 18:55 | 显示全部楼层
dengdeng我 发表于 2017-6-5 16:32
能帮我弄弄这个吗?简单的不要用函数可以吗?

这个,个人只会用VBA处理,建议重新发送新帖寻求帮助
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 03:35 , Processed in 0.300423 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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