首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从声明变量的级联中获得值?

如何从声明变量的级联中获得值?
EN

Stack Overflow用户
提问于 2021-04-06 22:52:18
回答 1查看 50关注 0票数 0

我声明了一些变量:

代码语言:javascript
复制
Dim SRC_A3 As Variant: SRC_A3 = Worksheets("SOURCES").Range("A3") ' Get filename
Dim MergeKey1 As Variant: MergeKey1 = Right(SRC_A3, 36) ' Trim the cst key out of this filename
Dim SRC_A4 As Variant: SRC_A4 = Worksheets("SOURCES").Range("A4") ' Get filename
Dim MergeKey2 ... 

稍后,我需要通过连接创建变量来获得这些变量的值:

代码语言:javascript
复制
For MKey = 2 To 6
    Dim MKeyNo As Variant: MKeyNo = "MergeKey" & (MKey - 1)
    Dim MGK As As Variant: MGK = MKeyNo
    MsgBox "MKey:" & MKey & " + " & "MKeyNo:" & MKeyNo & " + " & "MGK:" & MGK
        If IsEmpty(MGK) = False _
        Then
        Dim UnDelete1 As Range: Set UnDelete1 = Worksheets("SQL_UPDATES").Range("$B$" & MKey)
        Dim UnDelete2 As Range: Set UnDelete2 = Worksheets("SQL_UPDATES").Range("$B$" & (MKey + 1))
        Dim UnDelCode1 As String
            UnDelCode1 = "USE [nfAPCO] UPDATE co_individual SET ind_delete_flag = 0 WHERE ind_cst_key = '" & MGK & "'"
        Dim UnDelCode2 As String
            UnDelCode2 = "USE [nfAPCO] UPDATE co_customer SET cst_delete_flag = 0 WHERE cst_key = '" & MGK & "'"
        UnDelete1.Value = UnDelCode1
        UnDelete2.Value = UnDelCode2
        End If
    MKC = MKey + 1
    Cells(MKC, 1).Activate
Next

但是,级联会创建一个字符串,并且不会返回到声明的变量(例如"MergeKey1"),从而生成一个值(或没有值)。这使得IsEmpty(MGK)总是错误的,并且在我的其他连接中不会产生值。消息框显示"MKey:2 + MKeyNo:MergeKey1 + MKG:MergeKey1",但我希望它生成“”"MergeKey1“等。如果我能用MKeyNo做这件事,而忘记MGK,那就好了。

任何帮助都是值得感激的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-06 23:01:00

这在VBA中是不可能的--看看如何使用数组。

下面是一个简单的示例,它用A1:A6的值填充数组MergeKeys。

代码语言:javascript
复制
Dim MergeKeys(1 To 6) 
Dim idx As Long

    For idx = 1 To 6
        MergeKey(idx) = Range("A" & idx).Value
    Next idx
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66977463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档