VBA - 在“IF 语句”内嵌套“With 语句”

2024-01-02

语言:VBA - MS Access

我在代码中使用用户定义类型 (UDT)。 我希望能够根据状态变量确定我正在将数据加载到 UDT 的哪个部分。我的第一次尝试是使用嵌套在“IF”语句中的“With”语句。这不起作用(我收到一个编译器错误,显示 Else without if)。有办法让这项工作发挥作用吗?或者使用状态变量来确定我正在加载 UDT 的哪个部分的另一种方法?

Type MyOtherType
    Name as String
    Age as Integer    
End Type

Type MyType
    aMyOtherType() as MyOtherType
    X as Integer
    Y as Integer
    Z as Integer  
End Type

Sub QuestionableCode()
Dim UDT(0 To 0) as MyType
Dim State as String
ReDim Preserve UDT(0).X(0 to 0) as MyOtherType
ReDim Preserve UDT(0).Y(0 to 0) as MyOtherType
ReDim Preserve UDT(0).Z(0 to 0) as MyOtherType

    State = "B"

    If State = "A" Then
        With UDT(0).X(0)
    ElseIf State = "B" Then
        With UDT(0).Y(0)
    Else 
        With UDT(0).Z(0)
    End If
            .Name = "George"
            .Age = 30
        End With
End Sub

你不能与With那样。编译器不允许这种有条件嵌套的代码。不与With,不与For,不与其他任何东西一起。

但是,您可以使用变量来确定要在 with 中使用哪个值:

Sub QuestionableCode()
    Dim UDT(0 To 0) as MyType
    Dim State as String
    ReDim Preserve UDT(0).X(0 to 0) as MyOtherType
    ReDim Preserve UDT(0).Y(0 to 0) as MyOtherType
    ReDim Preserve UDT(0).Z(0 to 0) as MyOtherType

    State = "B"
    Dim myWithVariable
    If State = "A" Then
        myWithVariable = UDT(0).X(0)
    ElseIf State = "B" Then
        myWithVariable = UDT(0).Y(0)
    Else 
        myWithVariable = UDT(0).Z(0)
    End If
    With myWithVariable 
        .Name = "George"
        .Age = 30
    End With
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA - 在“IF 语句”内嵌套“With 语句” 的相关文章

  • 参数太少错误,同时未使用参数占位符

    我尝试使用 PYODBC 在 Access 数据库中执行 SQL 查询 但出现以下错误 pyodbc Error 07002 07002 Microsoft ODBC Microsoft Access 驱动程序 参数太少 预期为 1 301
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • PHP if in_array 表示多个值

    我有一个由 3 到 12 个值之间的任意位置生成的数组 它根据帐户信息生成该数组 result ad gt user gt groups user username 我想检查这个数组是否有多个值 大约 4 或 5 个 如果其中有任何一个值
  • MS Access:在列中搜索星号/星号

    我正在寻找一种方法来搜索包含字符串数据类型的列 问题是星号或星号是保留符号 以下查询无法正常工作 select from users where instr pattern 如何编写 Access 查询来搜索列中的星号 您可以使用方括号在
  • Range.End() 困惑

    我有一个关于 VBA 中 Range End 属性的一般性问题 我已经阅读了有关该房产的信息here http msdn microsoft com en us library bb221181 aspx 但我还是很困惑 例子 With w
  • 数据转换器 SSIS 数据流组件中相应列的转换数据类型应该是什么?

    我们的一台服务器上有普通的 Microsoft SQL Server 2008 我们决定在文件系统上创建 DTSX 文件 以便我们可以使用 BIDS 2008 打开 DTSX 文件 一种 SSIS 控制流组件 它从 Microsoft SQ
  • 将所有工作簿工作表复制到新工作簿 VBA

    我正在使用此代码将工作簿中的每张工作表复制到新工作簿中 它工作正常 但它颠倒了工作表的顺序 是否有办法阻止它这样做 Sub copy copies all the sheets of the open workbook to a new o
  • VB SQL 语句未选择正确的行

    我试图使用 SELECT 语句在我的数据库中 选择 一个人 但它没有选择正确的人 我也不确定为什么 我正在使用访问数据库 数据库连接代码 Imports System Data OleDb Module Database Connectio
  • 需要在Excel中合并3列

    我有 3 列 A B C 我需要合并这 3 列 并且我已经应用了 forumala A1 B1 C1输出为 E 列 我需要输出为 D 列 下面的公式将达到您想要的结果 TEXTJOIN TRUE A1 C1 Textjoin 的工作方式类似
  • 实体框架、dll、excel

    我用C 编写了Excel使用的dll 该dll是COM注册的 我与 Excel 的连接没有问题 该 dll 使用实体框架 5 从 SQL Server 数据库检索数据 如果我通过控制台应用程序运行该 dll 则该 dll 工作正常 但是当我
  • 如何处理 Workbook.SaveAs 覆盖确认上的“否”或“取消”?

    我希望在 VBA 脚本开始修改内容之前提示用户保存工作簿 当 另存为 对话框出现时 如果用户单击 取消 我会引发自定义错误并停止脚本 如果他们单击 保存 并且文件名已存在 我希望询问他们是否覆盖 这是我的代码 Function SaveCu
  • Excel VBA - 如何逐行读取csv文件而不是整个文件

    这是我需要读取的 csv 文件内容 header header header header header header value value value value value value value value value 我在网上找到
  • 标准 VBA 函数“找不到项目或库”

    因此 我必须在我的 PC 上运行别人的 Excel 应用程序 并且在标准函数 如日期 格式 十六进制 中间等 上收到 找不到项目或库 的信息 一些研究表明 如果我在这些函数前加上 VBA 前缀 如 VBA Date 中那样 它会正常工作 网
  • 在 VBA 中按键对字典进行排序

    我使用 VBA 创建了一个字典CreateObject Scripting Dictionary 将源单词映射到要在某些文本中替换的目标单词 这实际上是为了混淆 不幸的是 当我按照下面的代码进行实际替换时 它将按照源单词添加到字典中的顺序替
  • 爪哇;预期不是没有 if 的 else 语句

    您好 我想知道我的代码有什么问题 我收到标题中所述的错误 这有什么问题吗 提前致谢 为什么需要这么多细节 我觉得我已经描述得足够好了 import java util Scanner public class CombinationLock
  • For...VBA 中的下一个循环超出限制

    我正在使用一个For Next循环填充数组 如下所示 ReDim array 1 to 100 1 to 100 For i 1 to 100 Next i But the i计数器似乎总是转到 101 而不是停止在 100 因此 这会在我
  • 在 Access 数据库中对列包含数字和字母的数据进行排序

    请帮助我 因为我一直无法做到这一点 选择此列 columnA 的访问 SQL 是什么 以便它返回一个结果集 其中的不同值首先根据数字排序 然后根据字母排序 这是列值 10A 9C 12D 11G 9B 10C 9R 8T 我尝试过 从 tb
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • Confluence:使用 VBA 更新现有页面

    我尝试使用 VBA 更新 Confluence 页面 我的想法是使用REST API加载页面内容 修改内容然后上传修改后的版本 这是我的代码 Private Sub TestRESTApi Dim uname As String uname
  • MS Access - 粘贴确认事件后

    当用户将记录直接粘贴到数据表子报表中时 是否可以在显示粘贴确认消息后捕获事件 我需要它能够在审计表中创建新记录时进行记录 通过捕获更新前 更新后和插入事件 我可以轻松创建已添加的记录集合 准备将详细信息插入审核日志 但是在所有这些事件触发后

随机推荐

  • 无法识别的选择器发送到实例 UIViewController

    我不断收到错误 NSInvalidArgumentException 原因 UIViewController setPhotoCellName 无法识别的选择器发送到实例 当我进入准备segue调用时 目前我有 TabBarControll
  • 如何在 Grails 中外部化自定义约束?

    我想将自定义约束验证器闭包保留在属性的约束定义之外 因为这样更容易阅读和重用 但我做错了 我正在尝试这样做 class City String name static constraints name nullable false blan
  • 更新模型并将更新操作与 UI 绑定

    我目前已经使用 AngularJS 开发了一个内容表 该表将基于 Angular 服务 模型 进行填充 该模型调用 Web 服务并返回列表 并使用 ng repeat 并创建一个表及其所有内容 目前一切正常 但我有一个小问题 在表的一部分
  • 表达式 awk、python 中的无效字符

    我有一个如下所示的命令 ps v p 2585 awk if 9 MEM print 9 现在这在 bash 中运行得很好 它只需要你给它的任何 pid 的内存部分 不过我现在正在尝试用 python 实现它 但遇到了一些问题 这是我在 p
  • 尝试从 Reddit API 获取数据时出现 403 错误

    我正在使用 oAuth 来验证我的应用程序 我设法获得了代码 access token 和refresh token 因此下一步将尝试获取有关当前用户的信息 public async void GetCurrentUser using va
  • Twitter bootstrap:带有图标但没有文本的按钮高度错误

    There are two buttons on simple html page with attached twitter bootstrap 2 3 with and without text If I open it button
  • JOptionPane 按钮和自定义面板之间的通信

    我通过使用我想要的字段构建 JPanel 并将其添加到 JOption 窗格来创建多输入对话框 JMainPanel mainPanel new JMainPanel mensaje parametros mgr int i JOption
  • rowsTotal、recordsFiltered 解释 Jquery DataTable

    我正在阅读数据表文档 但找不到答案 我的问题是 我有一个包含 10 000 行的表 我按州进行搜索 结果是 3000 行 从 3000 行开始 我将每页显示 20 行 recordsTotal 这里应该有什么值 recordsFiltere
  • 获取逗号分隔字符串列之间的公共元素(来自同一行),保留行名

    我有一个数据框 其中一些列包含逗号分隔的字符串 colA colB 1 a b c d b e 2 f g h f g m p 3 i j k f o j 我想获得对应于同一行的两列之间的共同元素 所以我想要的输出是 colA colB 1
  • 当名称不匹配时 MVC UpdateModel

    假设您有一个看起来像这样的模型 public class MyClass public string Name get set public DateTime MyDate get set Visual Studio 为您提供的默认编辑模板
  • AJAX 请求时清空 $_SESSION 超全局变量,但保留会话 ID

    我遇到问题 SESSIONAJAX 请求上的超级全局 session start 函数在任何会话编码之前调用 调用代码和AJAX响应代码中的Session ID也是相同的 通过echoing测试session id 在两个脚本中 AJAX
  • 如何使用有效的 AWS 配置文件配置 Alexa Ask-cli?

    在使用了developer amazon com和aws amazon com的漂亮浏览器GUI之后 事情变得越来越严重 现在我想使用ask cli来初始化Alexa技能及其lambda函数 当我想要的时候ask init 它告诉我 我应该
  • Unity 3D:资源包与资源文件夹与 www.Texture

    因此 我在论坛上阅读了一些有关 Unity 3D 中的 AssetBundles 和 Resources 文件夹的内容 但我无法找出我所面临问题的最佳解决方案 问题是这样的 我有一个专为独立设计的程序 可以加载充满 png 和 jpg 图像
  • 具有手动内存管理的解释语言?

    哪些解释型语言无指针语言 IE Python Java Perl PHP Ruby Javascript 等 具有手动内存管理功能 我不记得曾经听说过 解释型语言主要担心的不是垃圾收集的非确定性延迟 或没有足够延迟时的空间复杂性 吗 那么为
  • MPAndroidChart - 自 v2 以来删除顶部边框/轴

    我将 MPAndroidChart 从 v1 7 升级到 v2 并且必须更改一些内容 新的事情之一是我现在似乎有一个最大值的顶部边框 我试图隐藏所有边框的代码是这样的 LineChart graph LineChart connection
  • 如何使用 Delphi 获取与文件扩展名关联的程序名称?

    我需要获取当前与当前用户的文件扩展名关联的程序的名称 如果右键单击文件并选择属性 那么我需要的是 打开方式 行右侧的程序名称 例如对于 xls 我希望能够获得答案 Microsoft Office Excel 或者用户作为默认程序打开 xl
  • 从 Java 应用程序在 Chrome 控制台中执行 JavaScript 命令

    我想创建一个简单的应用程序 它将在特定页面上的 Chrome 控制台中执行 JavaScript 命令并返回输出 也就是说 我想从当前页面获取所有可访问的链接 我可以通过在 Chrome 控制台中运行以下命令来完成此操作 urls a fo
  • WordPress 中哪些列存储 slug

    在 WordPress 中 哪一列存储 slug 自动生成的或用户输入的 我在其中都找不到这个wp posts or wp postmeta The wp posts GUID存储直接链接 但不存储 slug 帖子和页面的 slug 存储在
  • 核心图像:使用 CICrop 后,应用合成滤镜无法对齐

    我正在使用 CICrop 通过剪切图像的顶部和底部来将图像裁剪为特定尺寸 之后 我应用 CIMultiplyCompositing 过滤器之类的东西 将裁剪后的图像与另一个图像组合起来 两张图片大小相同 但结果显示两张图片没有对齐 其中一张
  • VBA - 在“IF 语句”内嵌套“With 语句”

    语言 VBA MS Access 我在代码中使用用户定义类型 UDT 我希望能够根据状态变量确定我正在将数据加载到 UDT 的哪个部分 我的第一次尝试是使用嵌套在 IF 语句中的 With 语句 这不起作用 我收到一个编译器错误 显示 El