denga9502 发表于 2022-3-28 11:09

vba 自动复制单元格,如何只对某一列有效?

本帖最后由 denga9502 于 2022-3-28 16:28 编辑

Private Sub CommandButton1_Click()
r = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
If Sheet1.Cells(r, 2) <> "" Then r = r + 1
Sheet1.Cells(r, 2) = ActiveCell
ActiveCell.Activate
End Sub

小能维尼 发表于 2022-3-28 11:22

range().EntireRow这个吧

dutyzqly 发表于 2022-3-28 11:31

看不太明白你想达到的效果,我先猜你代码的意思
第一步取有内容最后一行的行号
然后判断最后一行的最后一列是否为空,不为空就行数加一
没有endif没法判断下面两句是否包含在判断过程之内
最后两句应该是将当前激活单元格的内容复制到整个工作表最后一行的第二列吧,
如果你是想针对激活单元格只对某一列有效,
可以加一个判断语句的
If ActiveCell.Column = 2 Then
Sheet1.Cells(r, 2) = ActiveCell
End If

denga9502 发表于 2022-3-28 12:10

本帖最后由 denga9502 于 2022-3-28 16:12 编辑

dutyzqly 发表于 2022-3-28 11:31
看不太明白你想达到的效果,我先猜你代码的意思
第一步取有内容最后一行的行号
然后判断最后一行的最后一 ...

就是想在某一列中实现对选中的不为空单元格自动复制到同列最近一个空单元格并加上自定后缀。

醉里流年 发表于 2022-3-28 12:20

ActiveCell.Copy ActiveCell.End(4).Offset(1)

penghaoaini 发表于 2022-3-28 12:53

如果知道如何弄以后请教一下我

列明 发表于 2022-3-28 13:05

Private Sub CommandButton1_Click()
r = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
If Sheet1.Cells(r, 2).value <> "" Then r = r + 1
Sheet1.Cells(r, 2) = ActiveCell
Sheet1.Cells(r, 2).Activate
End Sub

jideco 发表于 2022-3-28 13:11

unmask 发表于 2022-3-28 13:28

Sub copyCell()
    If ActiveCell Is Nothing Or ActiveCell.Text = "" Then
      Exit Sub
    End If
    Dim r As Integer, c As Integer
    r = ActiveCell.Row
    c = ActiveCell.Column
    Do While True
      r = r + 1
      If Cells(r, c).Text = "" Then
            Cells(r, c) = ActiveCell
            Exit Do
      End If
    Loop
End Sub

denga9502 发表于 2022-3-28 16:15

denga9502 发表于 2022-3-28 12:10
就是想在某一列中实现对选中的不为空单元格自动复制到同列最近一个空单元格并加上自定后缀。

可以了,前面位置没放对{:1_907:}
页: [1] 2
查看完整版本: vba 自动复制单元格,如何只对某一列有效?