【问题标题】:vba excel choosing the right worksheetvba excel选择正确的工作表
【发布时间】:2018-12-28 14:32:41
【问题描述】:

问题出在代码末尾的“相交”部分。只有当新工作表进入前台时它才会继续运行。
此外,有没有办法在没有“with worksheet("spread")”的情况下不使用“Intersect”命令?

Sub Schaltfläche2_Klicken() 

Dim wb As Workbook, wq As Object
Dim ws As Worksheet, datdatum

Set wb = Workbooks.Add
Set ws = wb.Worksheets("Tabelle1")


ws.Select
ActiveWindow.Zoom = 80


ws.Name = "Spread"
datdatum = Now

Set wq = Workbooks.Open    
(Filename:="C:\Users\topal\Desktop\Spreaddeterminierung\Fundings 020718.xls")

wq.Sheets("Hypothekenbanken").Range("A11:P54").Copy
ws.Range("A3").PasteSpecial
wq.Sheets("Landesbanken").Range("A12:P38").Copy
ws.Range("A50").PasteSpecial

With Worksheets("Spread")
Intersect(.Range("4:92"), Range("F:F,H:H,J:J,M:M")).BorderAround , , 1
End With

End Sub

【问题讨论】:

    标签: excel vba range worksheet intersect


    【解决方案1】:

    您从第二个 Range 语句中漏掉了一个 . ...

    Intersect(.Range("4:92"), Range("F:F,H:H,J:J,M:M")).BorderAround , , 1
    

    应该是……

    Intersect(.Range("4:92"), .Range("F:F,H:H,J:J,M:M")).BorderAround , , 1
    

    假设您在模块中编写此子程序,Range 前面没有 . 目标是活动(前台/最前面)工作表。另一方面,如果您在工作表中编写此子代码,则前面没有 .Range 将针对您正在编码的工作表。感谢@Vityata 指出这一点!


    在回答您的第二个问题时,您可以通过在 .Range 语句前面明确说明工作表来取消 With 块,例如 ...

    With Worksheets("Spread")
        Intersect(.Range("4:92"), Range("F:F,H:H,J:J,M:M")).BorderAround , , 1
    End With
    

    会变成

    Intersect(Worksheets("Spread").Range("4:92"), Worksheets("Spread").Range("F:F,H:H,J:J,M:M")).BorderAround , , 1
    

    【讨论】:

    • 不带 . in front 以活动(前台/最前面)工作表为目标。 - 在这种情况下不是。 OP 正在Worksheet 中编写代码,因此没有. 的 Range 采用工作表,代码保留在其中而不是 ActiveSheet
    • 我会更新我的答案以反映您的见解,但 OP 从未说明代码的位置,所以我假设它在模块中,而不是在工作表中。只是出于兴趣,您如何从代码中判断它不在模块中?
    • 是的。但是,我猜Schaltfläche2_Klicken 很可能是工作簿中的_Click 事件。
    • 现在正在改进。我希望 VBA 没有将 Form 元素的 _Click 事件翻译成本地语言。有时候有点过分了。
    • 你好,代码在一个模块中。我已经对其进行了编辑,现在的问题是宏采用从前面复制值的工作表。将值复制到其中的另一张表,并且表名“spread”在后面。因此,“相交”命令卡住了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多