将用户输入插入Excel工作表末尾的新列

时间:2018-02-15 00:06:32

标签: excel vba excel-vba

作为较大宏的一部分,我想在工作表的末尾创建一个新列,然后使用输入框中的输入填充单元格。

用户输入称为CourseName。我想在工作表的末尾添加一个名为" Course"然后使用CourseName中的值填充具有活动数据的每个单元格。

我已经有了inputBox代码,而且:

With ActiveSheet
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

Sub Macro1()
Dim LastCol, LastRow As Long

'code of your inputbox, whatever it does. Mine is just to run the macro
Dim MyInputbox As String

MyInputbox = InputBox("Type something")


With ActiveSheet
    LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

Range(Cells(1, LastCol + 1), Cells(LastRow, LastCol + 1)).Value = MyInputbox


End Sub

根据您的需求进行调整。我专注于始终获取最后一列和行,并输入该范围,无论输入框的值是什么。

我第一次运行这个宏时输入"你好"我第二次输入"你好再次#34;。如您所见,宏总是会添加一个包含数据的新列。

enter image description here

希望这有帮助!

答案 1 :(得分:0)

你可以使用这段代码(评论中的解释):

With ActiveSheet.UsedRange ' reference active sheet "used" range 
    With .Columns(.Columns.Count + 1) ' reference the column one column right of the referenced (i.e.: "used" range) range last one
        .Value = CourseName ' fill all referenced columns cell with inputbox return value (adjust "CourseName" to fit the variable name that stores InputBox return value)
        .Cells(1, 1).Value = "Course" 'write referenced column header
    End With
End With