Excel精英培训网

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

[已解决]兩個寫法結果是一樣嗎?

[复制链接]
发表于 2012-1-18 10:57 | 显示全部楼层 |阅读模式
請問以下兩個寫法結果是一樣嗎?但為何在同一workbook不同sheet上執行會不一樣呢!  
aa的在空白或有資料頁面執行都OK,,,bb的只有在 空白頁面執行OK!,,,,
Sub aa()
   
   
    Dim x&
   
    For x = 12 To 225 Step 12
        
             Cells(x, 13).Font.Bold = True
             Cells(x, 13).HorizontalAlignment = xlCenter
             Cells(x, 13) = "U03-" & Format(x / 12 + 0, "00")  '???
             Cells(x, 13).Resize(1, 3).Merge '合并?元格
        With Cells(x, 13).Font
                      .Name = "Arial Narrow"
                      .Size = 14
                     
        End With
      
    Next x
   
End Sub


Sub bb()
   
    Dim y&
   
    For y = 1 To 225 Step 12
             Range("L11").Offset(y, 1).Resize(1, 3).ClearContents
             Range("L11").Offset(y, 1).Font.Bold = True
             Range("L11").Offset(y, 1).HorizontalAlignment = xlCenter
             Range("L11").Offset(y, 1) = "U03-" & Format(y / 12 + 1, "00") '???
             Range("L11").Offset(y, 1).Resize(1, 3).Merge '合并?元格
        With Range("L11").Offset(y, 1).Font
                      .Name = "Arial Narrow"
                      .Size = 14
                     
        End With
      
    Next y
   
End Sub
最佳答案
2012-1-18 12:36
kpkay 发表于 2012-1-18 12:10
請下載試試兩個頁面,用bb

sheet1中B11合并了B11:AO11。所以 Range("L11").Cells(1, 1).Select,选取AP12。即bb的运行结果,输出到了ap列。

解决:选取B11:AO11,取消合并单元格。
发表于 2012-1-18 11:43 | 显示全部楼层
本帖最后由 happym8888 于 2012-1-18 11:49 编辑

楼主,你的两个代码在我这都能运行啊?
回复

使用道具 举报

 楼主| 发表于 2012-1-18 11:48 | 显示全部楼层
SORRY,我是放在模塊內的,但bb在有資料的頁面不起作用啊!
回复

使用道具 举报

发表于 2012-1-18 11:50 | 显示全部楼层
本帖最后由 happym8888 于 2012-1-18 11:52 编辑
kpkay 发表于 2012-1-18 11:48
SORRY,我是放在模塊內的,但bb在有資料的頁面不起作用啊!


怎么不起作用?有提示吗?
你的BB在我这儿的运行结果:
未命名.jpg
回复

使用道具 举报

发表于 2012-1-18 11:51 | 显示全部楼层
(还是你1楼的代码,只增加了debug.print)

Sub aa()
    Dim x&
    For x = 12 To 225 Step 12
        With Cells(x, "M")
            With .Font
                .Name = "Arial Narrow"
                .Size = 14
                .Bold = True
            End With
            .Value = "U03-" & Format(x / 12 + 0, "00")  '???
            .HorizontalAlignment = xlCenter
            .Resize(1, 3).Merge    '合并?元格
            Debug.Print .Address(0, 0); ":" & .Value
        End With
    Next x
End Sub

Sub bb()
    Dim y&
    For y = 1 To 225 Step 12
        With Range("L11").Offset(y, 1)
            With .Font
                .Name = "Arial Narrow"
                .Size = 14
                .Bold = True
            End With
            .Resize(1, 3).ClearContents
            .Value = "U03-" & Format(y / 12 + 1, "00")    '???
            .HorizontalAlignment = xlCenter
            .Resize(1, 3).Merge    '合并?元格
            Debug.Print .Address(0, 0); ":" & .Value
        End With
    Next y
End Sub

两者不等效,bb多循环了1次。原因是bb循环初值是1,而aa是12
回复

使用道具 举报

 楼主| 发表于 2012-1-18 12:08 | 显示全部楼层
請問如何上傳我的EXCEL檔?
回复

使用道具 举报

 楼主| 发表于 2012-1-18 12:10 | 显示全部楼层
請下載試試兩個頁面,用bb

TEST2.rar

176.99 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2012-1-18 12:33 | 显示全部楼层
找到原因嗎?{:4412:}{:4412:}
回复

使用道具 举报

发表于 2012-1-18 12:36 | 显示全部楼层    本楼为最佳答案   
kpkay 发表于 2012-1-18 12:10
請下載試試兩個頁面,用bb

sheet1中B11合并了B11:AO11。所以 Range("L11").Cells(1, 1).Select,选取AP12。即bb的运行结果,输出到了ap列。

解决:选取B11:AO11,取消合并单元格。
回复

使用道具 举报

发表于 2012-1-18 12:50 | 显示全部楼层
本帖最后由 happym8888 于 2012-1-18 12:56 编辑

嗯,是到AP列里去了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 01:35 , Processed in 0.533026 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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