Excel VBA: Shift:=xlToLeft 两次可能?



看起来像这样我是 vba 的新手,正在努力解决以下问题。

我在列(假设("E:E"* 中写了一个公式(不在 VBA 代码中(,现在我在它旁边插入一个新列(带有 VBA 代码(。问题是,我的公式不会自动扩展。

因此,当我更改新添加的列的位置/位置时,它将位于至少两个已经存在的列之间,并且公式将自动扩展......

Sub spalteeinfuegen1()
Set Zelle_kostenstelle = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) 'Suche der Kostenstelle in der Tabelle1
If Not Zelle_kostenstelle Is Nothing Then
Zelle_kostenstelle.EntireColumn.Insert Shift:=xlToLeft 'Einfügen der Tabelle auf der linken Seite und Abbruch falls er den Eintrag nicht findet
Worksheets("Tabelle1").Cells(1, Zelle_kostenstelle.Column - 1) = UserForm4.TextBox1.Text 'Text aus der UserForm übertragen
End If
End Sub

但是我怎样才能使用 Shift:=xlToLeft 两次呢?

*"E:E"列只是一个示例。在 VBA 代码中,我称它为"kostenstelle",因为它随着每个新插入的位置而变化。

Sub spalteeinfuegen1()
Set Zelle_kostenstelle = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle)
Zelle_kostenstelle.EntireColumn.Select
With Selection
If Selection.Column > 2 Then
Debug.Print ",e"
.Columns(.Columns(Selection).Column - 2).Insert Shift:=xlToLeft
Worksheets("Tabelle1").Cells(1, Zelle_kostenstelle.Column - 2) = UserForm4.TextBox1.Text
End If
End With
End Sub

不知何故我很困惑,如何正确处理变量列"zelle_kostenstelle"......

也许是这样的:

Option Explicit
Public Sub test()
Dim Zelle_kostenstelle As Range
Dim kostenstelle As String
kostenstelle = "FindMe"
With Worksheets("Tabelle1")
Set Zelle_kostenstelle = .Range("1:1").Find(kostenstelle)
If Not Zelle_kostenstelle Is Nothing Then '< Test if anything was found
If Zelle_kostenstelle.Column > 2 Then '<Make sure you can go back to columns to do an insert
.Columns(Zelle_kostenstelle.Column - 2).Insert Shift:=xlToRight '<perform the insert 2 columns to the left
End If
End If
End With
End Sub

相关内容

  • 没有找到相关文章

最新更新