我有20多个隐藏的数据列。我希望出现4列,然后在每次单击按钮时出现接下来的4列。
我尝试了以下代码。一次单击将显示所有20列,而不是一次显示4列。
onAuthorize: function(data, actions) {
// Make a request to your server
return actions.request.post('urlServerPost', {
paymentID: data.paymentID,
payerID: data.payerID,
variable1: 'something',
variable2: 'something2'
})
.then(function(res) {
//Your payment has already been approved and the process on the server has been finished also
});
}
答案 0 :(得分:0)
您想要类似的东西
range(columns(j),columns(j+k)).entirecolumn.hidden=true
range(columns(y),columns(y+z)).entirecolumn.hidden=false
但是您需要逻辑来确定j是什么...第一种情况是什么都没有隐藏:
if not columns(9).entirecolumn.hidden and not columns(13).entirecolumn.hidden and not columns(17).entirecolumn.hidden and not columns(21).entirecolumn.hidden then
然后,您将要隐藏:
j = 13
k = 15
在这种情况不是真的(ELSE)的情况下,您应该嵌入一些逻辑来确定隐藏的内容并取消隐藏其他部分:
if not columns(9).entirecolumn.hidden then
j = 9
k = 3
y = 13
z = 3
您需要为每个列分组提供以上内容,以告知未隐藏的内容,从而知道接下来的分组。
您将根据列号列出哪些部分可见,哪些部分隐藏。
答案 1 :(得分:0)
我知道距离任何人都已经发布了几天,但是我认为我会发布为另一个项目构建的宏的这一部分。这应该可以正常工作,并且变量已经根据OP的问题进行了设置。
Sub DynHideColumns()
FirstColumn = 9 ' First Column that could be hidden
LastColumn = 200 ' Last Column that could be hidden
ColumnSteps = 4 ' Number of columns to hide per start
x = FirstColumn
Z = 1
ReDim y(1 To ColumnSteps)
Do Until x > LastColumn
If ActiveSheet.Range(Columns(x), Columns(x)).EntireColumn.Hidden = False Then
If Z <= ColumnSteps Then
y(Z) = x
Z = Z + 1
Else
y(1) = ""
End If
End If
x = x + 1
Loop
ActiveSheet.Range(Columns(FirstColumn), Columns(LastColumn)).EntireColumn.Hidden = True
If y(1) = "" Then
ActiveSheet.Range(Columns(FirstColumn), Columns(FirstColumn + ColumnSteps - 1)).EntireColumn.Hidden = False
Else
If y(ColumnSteps) = LastColumn Then
ActiveSheet.Range(Columns(FirstColumn), Columns(FirstColumn + ColumnSteps)).EntireColumn.Hidden = False
Else
ActiveSheet.Range(Columns(y(1) + ColumnSteps), Columns(y(ColumnSteps) + ColumnSteps)).EntireColumn.Hidden = False
End If
End If
End Sub