gpt4 book ai didi

excel - 在 VBA 中使用 Excel 的内置 "My Table has Headers"功能

转载 作者:行者123 更新时间:2023-12-04 20:30:48 25 4
gpt4 key购买 nike

我使用用户表单来选择包含以各种方式操作的数据的区域。

我做了这样的事情来获得该地区:

If Selection.Cells.Count = 1 Then
Set rng = ActiveCell.CurrentRegion
Else
Set rng = Selection.Range
End If

MyDialog.SourceRange.Value = rng.Address
MyDialog.TableHasHeaders.Value = True

用户窗体有一个名为“我的表格有标题”的复选框设置为 True默认。我想使用与 Excel 用于控制具有相同名称的复选框的默认值的相同逻辑来控制此复选框的默认值,当我单击 Insert -> Table 时显示的名称相同。菜单按钮。

Built-in Dialog containing "My Table Has Headers" tickbox

我不介意是否显示内置对话框并访问其字段的值,或者是否调用控制内置复选框的函数。这两件事中的任何一个都可能吗?如果是,怎么做?

最佳答案

Application.Dialogs(796).Show

给出对话框,我不知道是否可以使用“普通”vba 代码检索一些参数。

但是,作为一种变通方法,您可以使用 xlGuess 选项作为 Listobject.add 方法中的参数,将其取消列出并检索应用程序将提供的 xlNo 或 xlYes。
Public Function WhatIsTheGuess(myRange) As XlYesNoGuess
Dim bl As boolean

With myRange.Parent
.ListObjects.Add(xlSrcRange, myRange, , xlGuess).Name = "testing"
bl = .ListObjects("testing").ListRows.Count = myRange.Rows.Count
.ListObjects("testing").Unlist
If bl Then myRange.Offset(-1).Rows(1).Delete
End With

WhatIsTheGuess = Abs(bl) + 1

End Function

Sub tst()
Dim mYTablehasHeaders As XlYesNoGuess, rng as range
Set Rng = Sheet1.Range("A1:A5")
mYTablehasHeaders = WhatIsTheGuess(Rng)
End Sub

关于excel - 在 VBA 中使用 Excel 的内置 "My Table has Headers"功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51261406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com