楼主: 小鳄鱼a
1653 4

[问答] 求教个简单的vba代码 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2014-10-27 10:23:41 |AI写论文
50论坛币
我会了,谢谢,删除吧

最佳答案

芐雨 查看完整内容

其实根本就不需要VBA,用操作技巧就可以了
关键词:VBA
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
╰不滅信念 + 3 + 3 + 3 哈哈 我VBA忘差不多了

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

沙发
芐雨 发表于 2014-10-27 10:23:42
其实根本就不需要VBA,用操作技巧就可以了

  1. Sub 按钮1_Click()
  2.     Dim arr, brr, i&, j&, cot&, temp$
  3.     On Error Resume Next
  4.    
  5.     '选择数据区域,包含列标题
  6.     arr = Application.Intersect(ActiveSheet.UsedRange, Application.InputBox("选择数据区域,包含列标题", , , , , , , 8))
  7.    
  8.     '选择的列数不为2时跳过
  9.     If UBound(arr, 2) <> 2 Then Exit Sub
  10.    
  11.     cot = UBound(arr)
  12.     ReDim brr(1 To cot, 1 To 3)

  13.     For i = UBound(arr) To 2 Step -1   '遍历数组
  14.         If arr(i, 1) = "name" Then     '等于"name"时候,得到每三列的名称,记入temp
  15.             temp = (arr(i, 2))
  16.         Else
  17.             cot = cot - 1
  18.             brr(cot, 1) = arr(i, 1)   '不等于"name"时,记入数组brr
  19.             brr(cot, 2) = arr(i, 2)
  20.             brr(cot, 3) = temp
  21.         End If
  22.     Next
  23.    
  24.     brr(1, 1) = arr(1, 1)
  25.     brr(1, 2) = arr(1, 2)
  26.     brr(1, 3) = "z"          '标题
  27.     '在E1单元格,输出数组brr
  28.     Range("E1").Resize(UBound(arr), 3) = brr
  29.     '定位空值,并删除
  30.     Range("E1").Resize(UBound(arr), 3).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
  31. End Sub
复制代码

藤椅
小鳄鱼a 发表于 2014-10-27 14:53:02
感觉应该不难,只是鄙人目前刚接触,求高手相助

板凳
小鳄鱼a 发表于 2014-10-27 19:33:33
芐雨 发表于 2014-10-27 10:23
其实根本就不需要VBA,用操作技巧就可以了
我现在想把最后一列的 12 34 56 行进行单元格合并   并且只保留一个值  比如 dstd_adjclpr1flag0          dcvflag0
mean        0.0021**        0.0057***        0.0095***        0.0075***        dstd_adjclpr1flag0
t        1.2189        2.7529        4.4319        5.2551        dstd_adjclpr1flag0
mean        0.0021**        0.0051***        0.0111***        0.0091***        dcvflag0
t        1.3923        2.5336        4.369        5.3907        dcvflag0
mean        0.0086***        0.0082***        0.0051***        -0.0035*        dnetppedivaflag0
t        4.0203        3.8827        2.6899        -3.7169        dnetppedivaflag0

报纸
芐雨 发表于 2014-10-27 21:31:58
小鳄鱼a 发表于 2014-10-27 19:33
我现在想把最后一列的 12 34 56 行进行单元格合并   并且只保留一个值  比如 dstd_adjclpr1flag0          dcvfl ...
你把内容都删除了,没办法测试
合并单元格:Range.Merge
录个宏就行
如果所有值都保留,用&连接在一起再合并就好

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 01:34