Looks like this我是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” ...
答案 0 :(得分:0)
也许是这样的:
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