Excel精英培训网

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

数据按条件自动填充(颇有难度,请老师关注)

[复制链接]
发表于 2015-1-8 14:37 | 显示全部楼层 |阅读模式
老师:
   我想请教的问题是:数据按条件自动填充。
   思路如下:
   按下“自动生成”按键
   自动在I18中填入数字1,同时将R列数据填入到V列;
   自动在I18中填入数字2,同时将R列数据填入到W列;
   自动在I18中填入数字3,同时将R列数据填入到X列;
   自动在I18中填入数字4,同时将R列数据填入到Y列;
   自动在I18中填入数字5,同时将R列数据填入到Z列。
   一直循环至填入数字40。
  
   再一次感谢老师!!
    颇有难度的填充问题.rar (7.55 KB, 下载次数: 5)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-1-8 15:40 | 显示全部楼层
  1. Option Explicit

  2. Sub Test()
  3. Dim i
  4. For i = 1 To 40
  5.     Range("I18") = i
  6.     Range("R1:R65536").Copy Range("R1").Offset(, 3 + i)
  7. Next i
  8. End Sub
复制代码
回复

使用道具 举报

发表于 2015-1-8 15:43 | 显示全部楼层
本帖最后由 xdragon 于 2015-1-8 15:44 编辑
  1. Sub test()
  2. '    Columns("R").copy Columns("U").Offset(0, [I18])
  3.     Columns("R").Copy Columns("V").Resize(, [I18])
  4. End Sub
复制代码
不知道是不是根据i18去扩展列的,如果不是把[i18]改成40就可以了
回复

使用道具 举报

发表于 2015-1-8 16:47 | 显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$I$18" Then
        Application.DisplayAlerts = False
        [r4:r23].Copy [u4].Offset(0, Target)
        Application.DisplayAlerts = True
    End If
End Sub
颇有难度的填充问题2.rar (11.99 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2015-1-8 16:51 | 显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$I$18" Then
        Application.DisplayAlerts = False
        [r4:r23].Copy [v4].Resize(1, 40) '是复制到整个区域?
        Application.DisplayAlerts = True
    End If
End Sub
回复

使用道具 举报

 楼主| 发表于 2015-1-8 17:42 | 显示全部楼层
suye1010 发表于 2015-1-8 15:40

suye1010 老师:
    您的大作已拜读,效果完美!
    在测试中发现一个问题:
    当R列是文本或纯数字时,VBA发挥完美;
    当R列用公式取数时(如:R4=a1[a1中有数据]),VBA作用失效,显示的不是数字,而是公式。
    suye1010 老师老师,这个问题不知能否给予解决!!
    问题附件.rar (16.63 KB, 下载次数: 5)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 16:49 , Processed in 0.401586 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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