ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 选中单元格循环写入

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-24 14:18 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
微信截图_20230324141603.png


  1. Sub 粘贴号()

  2. Application.ScreenUpdating = False

  3. Dim rng As Range, a

  4. a = ActiveCell.Row

  5. rngg = .Range("g1")

  6.     For Each rng In Selection

  7.         If Cells(a, 7) = "" And Cells(a, 8) <> "" Then

  8.             Selection.NumberFormatLocal = "@"

  9.             rng = "0" & rngg + 1

  10.         End If

  11.     Next

  12. Application.ScreenUpdating = True


  13. End Sub
复制代码



灰色区域效果,
在论坛抄写的代码,不会循环写入选择的单元格。

1.首先按我用鼠标选中G列单元才循环写入号码。没有选到的单元格不能写入。
G列写入的单元格不是固定,根据鼠标选中单元格。
比如我用鼠标选中的G4:G12的单元格,那么H列单元格不为空和G列单元格是空就写入号码

谢谢老师帮忙。


求助选择输入.rar

16.1 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-24 16:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
麻烦老师帮我看下,怎么才能循环,现在选中单元格只能写入第一个就停止了,不会继续往下写入。

TA的精华主题

TA的得分主题

发表于 2023-3-24 17:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不是循环的问题吧,好像是你的a固定了是选择的范围的第一个单元格所在行啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-24 17:04 | 显示全部楼层
bqwd36 发表于 2023-3-24 17:02
不是循环的问题吧,好像是你的a固定了是选择的范围的第一个单元格所在行啊

但是如果我一个一个单元格选中符合条件(G4,G6,G7,G8,G10),要可以一次性写入号码

TA的精华主题

TA的得分主题

发表于 2023-3-24 19:07 | 显示全部楼层
供参考      

求助选择输入.zip

17.58 KB, 下载次数: 9

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-24 20:28 | 显示全部楼层
要做什麼???不清楚

For Each rng In Selection
    If rng = "" And Cells(rng.Row, "h") <> "" Then
       rng.NumberFormatLocal = "@"
       rng = "0" & rngg + 1
    End If
Next

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-24 20:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 gwjkkkkk 于 2023-3-24 20:57 编辑


Sub test()
   Dim Rng As Range, rngCel As Range
   
   Set Rng = Intersect(Columns("G"), Selection)
   If Not Rng Is Nothing Then
        For Each rngCel In Rng
            If rngCel.Offset(, 1) <> "" Then
               rngCel.NumberFormatLocal = "@"
               rngCel = "0" & [G1]
            End If
        Next
   End If
End Sub

TA的精华主题

TA的得分主题

发表于 2023-3-24 20:57 | 显示全部楼层
参与一下。。。

求助选择输入.rar

15.22 KB, 下载次数: 6

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-24 22:03 来自手机 | 显示全部楼层
准提部林 发表于 2023-3-24 20:28
要做什麼???不清楚

For Each rng In Selection

谢谢老师,我是明细账,选择部分数据粘贴单号,生产出库单。G1是最后一个单号,新的单号是在最后一个单号加1。

TA的精华主题

TA的得分主题

发表于 2023-3-25 00:07 | 显示全部楼层
本帖最后由 xiaoya6976 于 2023-3-25 14:03 编辑

不知道符合你的意思不,才开始学习VBA,献丑;用Worksheet_SelectionChange事件来写感觉比SUB过程要方便点,直接在G列框选就可以填入号码
gif-2023-03-25-00-05.gif
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.    
  3.     Dim i, j, rw
  4.     If Err.Number > 0 Then
  5.         If Target.Column = 7 And Target.Offset(0, 1).Value <> "" Then
  6.             Target.Value = "号码"
  7.         End If
  8.     Else
  9.         If Target.Column = 7 Then
  10.             On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息
  11.             i = Selection.Rows(Selection.Rows.Count).Row
  12.             j = Selection.Cells(1).Row
  13.             For rw = j To i
  14.                 If Cells(rw, 7).Offset(0, 1) <> "" Then
  15.                     Cells(rw, 7).Value = "号码"
  16.                 Else
  17.                     Cells(rw, 7).Value = ""
  18.                 End If
  19.             Next
  20.         End If
  21.     End If
  22. End Sub
复制代码

求助选择输入.rar

17.99 KB, 下载次数: 2

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-9-29 16:15 , Processed in 0.043556 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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