Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于单元格值使用VBA在Excel中隐藏列的范围_Excel_Vba - Fatal编程技术网

基于单元格值使用VBA在Excel中隐藏列的范围

基于单元格值使用VBA在Excel中隐藏列的范围,excel,vba,Excel,Vba,我需要在excel中使用宏隐藏一系列单元格。C11包含我需要从中开始隐藏列的列索引 Sub test() Dim i As Integer Dim j As Integer Dim rocket As Range i = Range("c11").Value j = 12 rocket = Range(Cells(5, i), Cells(5, j)) Range("Rocket").Select Selection.EntireColumn.Hidden = True En

我需要在excel中使用宏隐藏一系列单元格。C11包含我需要从中开始隐藏列的列索引

Sub test()

Dim i As Integer
Dim j As Integer


Dim rocket As Range


i = Range("c11").Value
j = 12

rocket = Range(Cells(5, i), Cells(5, j))

Range("Rocket").Select

Selection.EntireColumn.Hidden = True


End Sub

代码出现了一些意外错误,因为我是新手,所以不知道需要做什么。

使代码正常工作的三个步骤:

第一。在必要的适当行中添加
设置
关键字:

Set rocket = Range(Cells(5, i), Cells(5, j))
第二<代码>火箭变量
表示范围,您不需要这样调用它:

Range("Rocket").... 
但是

三,。尽可能避免
选择方法
选择对象
。因此,最后两行将替换为这一行(也将执行第二步):


最后的回答太棒了!仅供他人参考,以下是Excel 2007中的工作原理。第一行始终为3,但结束行必须是变量。这就是我的问题所在。这个修好了!“如果结束”之前的最后4行完成工作。希望这有帮助

Dim RowsToHide As Range
Dim RowHideNum As Integer

' Set Correct Start Dates for Billing in New File
Workbooks("----- Combined_New_Students_Updated.xlsx").Activate
Sheets("2015").Activate
StartDateLine1 = Format(START_DATE_1, "ww") - 1 ' Convert Start Date to Week Number
StartDateLine1 = (StartDateLine1 * 6) - 2 ' Convert Start Date to Line Number
If StartDateLine1 >= "10" Then
 Cells(4, "q").Value = ""
 Cells(StartDateLine1, "q").Value = STATUS_1
 Cells(StartDateLine1, "z").Value = "START DATE " + START_DATE_1
 RowHideNum = StartDateLine1 - 2
 Set RowsToHide = Range(Cells(3, "a"), Cells(RowHideNum, "ab"))
 RowsToHide.Select
 RowsToHide.EntireRow.Hidden = True
End If
rocket.EntireColumn.Hidden = true
Dim RowsToHide As Range
Dim RowHideNum As Integer

' Set Correct Start Dates for Billing in New File
Workbooks("----- Combined_New_Students_Updated.xlsx").Activate
Sheets("2015").Activate
StartDateLine1 = Format(START_DATE_1, "ww") - 1 ' Convert Start Date to Week Number
StartDateLine1 = (StartDateLine1 * 6) - 2 ' Convert Start Date to Line Number
If StartDateLine1 >= "10" Then
 Cells(4, "q").Value = ""
 Cells(StartDateLine1, "q").Value = STATUS_1
 Cells(StartDateLine1, "z").Value = "START DATE " + START_DATE_1
 RowHideNum = StartDateLine1 - 2
 Set RowsToHide = Range(Cells(3, "a"), Cells(RowHideNum, "ab"))
 RowsToHide.Select
 RowsToHide.EntireRow.Hidden = True
End If