Excel VBA - 如何正确声明字符串

标签 excel variable-declaration vba

我有一些重复多次的代码,并且我也在几次“组运行”中使用它们,所以我经常重复使用我的代码。因此,我尝试以这样的方式声明一些值,以便我可以在每次运行的顶部仅更改一次。 下面我尝试在顶部声明工作表名称和行号,但我只收到“变量未定义”错误。任何人都可以帮助我如何正确声明这两个值 - 以及如何将它们正确地放入我的代码中(其他声明已经完成并且正在工作)。

Dim grsh, ntid As String
grsh = s1g1
ntid = 2289

Application.StatusBar = "Now updating: & grsh &   (new report data)."                   'grsh

        lr = sh_2_fravær.Range("A" & Rows.Count).End(xlUp).Row
        sh_2_fravær.Range("A3:E" & lr).ClearContents

            Set wb_Fravær = Workbooks("Fravær.xlsm")
            lr = wb_Fravær.Sheets("grsh").Range("A" & Rows.Count).End(xlUp).Row         'grsh
            wb_Fravær.Sheets("grsh").Range("A4:D" & lr).Copy                            'grsh

                sh_2_fravær.Range("A3").PasteSpecial
                Application.CutCopyMode = False



        lr = sh_11_tid.Range("A" & Rows.Count).End(xlUp).Row
        sh_11_tid.Range("A&ntid:L" & lr).ClearContents                                   'ntid

            Set wb_Tidsbruk = Workbooks("Tidsbruk.xlsm")
            lr = wb_Tidsbruk.Sheets("grsh").Range("A" & Rows.Count).End(xlUp).Row        'grsh
            wb_Tidsbruk.Sheets("grsh").Range("A5:I" & lr).Copy                           'grsh

                sh_11_tid.Range("A&ntid").PasteSpecial                                   'ntid
                Application.CutCopyMode = False

最佳答案

看起来主要是基本语法错误。

    Dim grsh As String, ntid As Long          '<~~ fixed
    grsh = "s1g1"                             '<~~ fixed
    ntid = 2289

    Application.StatusBar = "Now updating: " & grsh & " (new report data)."   '<~~ fixed

    lr = sh_2_fravær.Range("A" & Rows.Count).End(xlUp).Row
    sh_2_fravær.Range("A3:E" & lr).ClearContents

    Set wb_Fravær = Workbooks("Fravær.xlsm")
    lr = wb_Fravær.Worksheets(grsh).Range("A" & Rows.Count).End(xlUp).Row    '<~~ fixed
    wb_Fravær.Worksheets(grsh).Range("A4:D" & lr).Copy                       '<~~ fixed

    sh_2_fravær.Range("A3").PasteSpecial
    Application.CutCopyMode = False

    lr = sh_11_tid.Range("A" & Rows.Count).End(xlUp).Row
    sh_11_tid.Range("A" & ntid & ":L" & lr).ClearContents                    '<~~ fixed

    Set wb_Tidsbruk = Workbooks("Tidsbruk.xlsm")
    lr = wb_Tidsbruk.Worksheets(grsh).Range("A" & Rows.Count).End(xlUp).Row   '<~~ fixed
    wb_Tidsbruk.Worksheets(grsh).Range("A5:I" & lr).Copy                      '<~~ fixed

    sh_11_tid.Range("A" & ntid).PasteSpecial                                  '<~~ fixed
    Application.CutCopyMode = False

关于Excel VBA - 如何正确声明字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112600/

相关文章:

vba - "System resource exceeded"更新记录集时,可能在其他点

c# - 使用 C# 创建 Excel 加载项

VBA 转到最后一个空行

javascript - 为什么这段代码中有 'undefined'?

excel - VBA/如何过滤精确字符串上的数组?

vba - Excel VBA "Expected: end of statement"错误

excel - VBA - 关闭窗口

excel - 通过链接将一张纸上的列转置为另一张纸上的行

c++ - 在 for 循环中重新声明对象 - C++

c# - 在子 block 内声明变量会提高性能吗?