Excel 用于添加具有特定标题的列并在所有行中填充默认值的宏
我需要在最后一个标题单元格旁边添加一个新列,并在新列中填入一些随机值,例如给定工作表中的“Cool!” 下面是我的宏:Excel 用于添加具有特定标题的列并在所有行中填充默认值的宏,excel,vba,macros,Excel,Vba,Macros,我需要在最后一个标题单元格旁边添加一个新列,并在新列中填入一些随机值,例如给定工作表中的“Cool!” 下面是我的宏: Sub sbInsertingColumns(sourceFile As String, Worksheet As String) Dim lastColName As String Dim LastColumn As Long With ActiveSheet LastColumn = Workbooks(sourceFile).Worksheets(
Sub sbInsertingColumns(sourceFile As String, Worksheet As String)
Dim lastColName As String
Dim LastColumn As Long
With ActiveSheet
LastColumn = Workbooks(sourceFile).Worksheets(Worksheet).Range("A1").End(xlToRight).Column
End With
Dim nextCell As Integer
nextCell = Val(LastColumn) + Val(1)
lastColName = Replace(Replace(Cells(1, nextCell).Address, "1", ""), "$", "")
Workbooks(sourceFile).Worksheets(Worksheet).Range(lastColName & 1).Value = "New Header"
MsgBox "New Column has been added : [ " & lastColName & 1 & "]"
End Sub
添加值:
Sub Add()
Dim cellVal As String
Dim cell As Range
cellVal = .Range("E")
For Each cell In Sheets("Sheet1").Range("E:e").SpecialCells(xlCellTypeConstants, xlNumbers)
cell.Value = "Cool !"
Next cell
End Sub
我可以添加一个带有某些标题的新列,但是上面为新列添加值的逻辑不起作用。谁能帮帮我吗。
谢谢你的时间 我想说如下:
Sub sbInsertingColumns(sourceFile As String, Worksheet As String)
Dim sht As Worksheet
Set sht = Workbooks(sourceFile).Worksheets(Worksheet)
With sht.Range("A1").End(xlToRight).Offset(0, 1)
Application.Intersect(sht.UsedRange.EntireRow, .EntireColumn).Value = "Cool !"
.Value = "New Header"
End With
End Sub
Sub sbInsertingColumns(sourceFile As String, sheetName As String, headerName As String)
With Workbooks(sourceFile).Worksheets(sheetName).UsedRange
With .Columns(.Columns.Count).Offset(, 1)
.Value = "Cool !"
.Cells(1, 1) = headerName
End With
End With
End Sub
由某些“主要”子系统使用,如下所示:
Sub main()
sbInsertingColumns ActiveWorkbook.Name, ActiveSheet.Name, "newheader"
End Sub
Sub sbInsertingColumns(ws As Worksheet, headerName As String)
With ws.UsedRange
With .Columns(.Columns.Count).Offset(, 1)
.Value = "Cool"
.Cells(1, 1) = headerName
End With
End With
End Sub
您还可以按如下方式缩短参数列表:
Sub main()
sbInsertingColumns ActiveWorkbook.Name, ActiveSheet.Name, "newheader"
End Sub
Sub sbInsertingColumns(ws As Worksheet, headerName As String)
With ws.UsedRange
With .Columns(.Columns.Count).Offset(, 1)
.Value = "Cool"
.Cells(1, 1) = headerName
End With
End With
End Sub
然后像下面这样称呼它
Sub main()
sbInsertingColumns ActiveSheet, "newheader"
End Sub
我想这样说:
Sub sbInsertingColumns(sourceFile As String, sheetName As String, headerName As String)
With Workbooks(sourceFile).Worksheets(sheetName).UsedRange
With .Columns(.Columns.Count).Offset(, 1)
.Value = "Cool !"
.Cells(1, 1) = headerName
End With
End With
End Sub
由某些“主要”子系统使用,如下所示:
Sub main()
sbInsertingColumns ActiveWorkbook.Name, ActiveSheet.Name, "newheader"
End Sub
Sub sbInsertingColumns(ws As Worksheet, headerName As String)
With ws.UsedRange
With .Columns(.Columns.Count).Offset(, 1)
.Value = "Cool"
.Cells(1, 1) = headerName
End With
End With
End Sub
您还可以按如下方式缩短参数列表:
Sub main()
sbInsertingColumns ActiveWorkbook.Name, ActiveSheet.Name, "newheader"
End Sub
Sub sbInsertingColumns(ws As Worksheet, headerName As String)
With ws.UsedRange
With .Columns(.Columns.Count).Offset(, 1)
.Value = "Cool"
.Cells(1, 1) = headerName
End With
End With
End Sub
然后像下面这样称呼它
Sub main()
sbInsertingColumns ActiveSheet, "newheader"
End Sub