+ -
当前位置:首页 → 问答吧 → Excel VBA - For each..... with

Excel VBA - For each..... with

时间:2014-03-14

来源:互联网

请问为何下面D VBA code 只系郁头一张SHEET,而D Code 唔系其他SHEETS 唔行?

For example, 有SHEET 1 ,2 ,3 ,4, 5

佢只系行SHEET 1 而唔行SHEET 2, 3 ,4 ,5? (Hide Column) 点解?


Sub Final_Combine()

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets

Application.Run "Hide_Column"

Next ws

End Sub



Sub Hide_Column()

Dim n As Integer
'Sub_Total = 0
For n = 1 To 1000
x = Cells(1, n).Value

If Cells(1, n).Value = "Hide" Then
Cells(1, n).Select
Selection.EntireColumn.Hidden = True

Else

Range("A1").Select

End If

Next n

End Sub




但当我将 Application.Run "Hide_Column" 改左 ws.Range("B1") = ws.Name
佢又识变行 TAG NAME

我上面有咩错?请指教, 谢谢

作者: wawawab   发布时间: 2014-03-14

点解用 Application.run?
引用:原帖由 wawawab 於 2014-1-14 00:30 发表
请问为何下面D VBA code 只系郁头一张SHEET,而D Code 唔系其他SHEETS 唔行?

For example, 有SHEET 1 ,2 ,3 ,4, 5

佢只系行SHEET 1 而唔行SHEET 2, 3 ,4 ,5? (Hide Column) 点解?


Sub Final_Combine()

...

作者: a8d7e8   发布时间: 2014-03-14

Hide_Column() 冇指明边张ws,咁default咪用activesheet囉

作者: skww   发布时间: 2014-03-14

引用:原帖由 skww 於 2014-1-14 11:47 AM 发表
Hide_Column() 冇指明边张ws,咁default咪用activesheet囉
请问我应如何修改?

请赐教! 谢谢

[ 本帖最后由 wawawab 於 2014-1-14 10:26 PM 编辑 ]

作者: wawawab   发布时间: 2014-03-15

引用:原帖由 a8d7e8 於 2014-1-14 09:45 AM 发表
点解用 Application.run?
只系俾大家易睇D, 冇咩意思. 谢谢

作者: wawawab   发布时间: 2014-03-15

无咩意思不如唔好用啦?
引用:原帖由 wawawab 於 2014-1-14 22:24 发表


只系俾大家易睇D, 冇咩意思. 谢谢

作者: a8d7e8   发布时间: 2014-03-15

Hide_Column() 变 Hide_Column(ws)
cells/range 之面加返ws变ws.cells/ws.range
当然呢句Application.Run "Hide_Column"都要改,加返ws啦

话说你张ws冇activate,selection系咪真系工作正常架

作者: skww   发布时间: 2014-03-15

引用:原帖由 skww 於 2014-1-15 02:05 PM 发表
Hide_Column() 变 Hide_Column(ws)
cells/range 之面加返ws变ws.cells/ws.range
当然呢句Application.Run "Hide_Column"都要改,加返ws啦

话说你张ws冇activate,selection系咪真系工作正常架:smi ...
THANKS! OK NOW
要WS.ACTIVATE

作者: wawawab   发布时间: 2014-03-15