返回列表 上一主題 發帖

[發問] 如何利用VBA回傳文字?

[發問] 如何利用VBA回傳文字?

假如A1,B1

如何在B1輸入任何文字後,A1會出現特定安排的文字,但A1不想輸入任何函數,要保持空白。
例如: B1如輸入ABC,A1會自動添加預設的文字如”DEF”,但A1本身是空格的,那應該要怎麼做呢?求高手指教!

回復 14# lpk187

我又試了一下,現在又可以了,之前那個workbook可能有些問題,總之謝謝大家了!!

TOP

回復 14# lpk187


    不行哦,我也有試過,但全部會變成1)

TOP

回復 13# leehom

把Cells(2, "A") = 1 把這句改成    Cells(2, "A") = 1 & ")"

TOP

回復 12# GBKEE


    這個很棒,不再限於ABCD0123456這個格式,任何長短數字都可以遞增。再請教一下,如果想A的數字自動加括號要怎麼寫?如1),2),3).....,謝謝!!

TOP

回復 10# lpk187
可用自動填滿,試試
  1. Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim i As Integer
  3.     If Target.Address = "$B$2" Then
  4.     Application.EnableEvents = False
  5.     Cells(2, "A") = 1
  6.     i = Application.InputBox("How many numbers you want to add?", "Prompt", , , , , , 1)
  7.     With Range("A2:B2")
  8.         Range(.Cells.Offset(1), .Cells.End(xlDown)) = ""  '清除舊有資料
  9.         .AutoFill Range("A2:B2").Resize(i)    '自動填滿
  10.     End With
  11.     Application.EnableEvents = True
  12.     End If
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# lpk187


    終於成功了,感謝各位的幫忙,學到不少了,THX!!!

TOP

回復 9# leehom
  1. Sub worksheet_change(ByVal Target As Range)
  2.      If Target.Address = "$B$2" Then
  3.      Application.EnableEvents = False
  4.         Cells(2, Target.Column - 1) = 1
  5.      i = Application.InputBox("How many numbers you want to add?", "Prompt", , , , , , 1) - 1
  6.      For j = Target.Row + 1 To Target.Row + i
  7.          Cells(j, Target.Column) = Left(Cells(j - 1, Target.Column), 5) & Right(Cells(j - 1, Target.Column), 7) + 1
  8.          Cells(j, Target.Column - 1) = Cells(j, Target.Column - 1).Row - 1
  9.      Next
  10.      Application.EnableEvents = True
  11.      End If
  12. End Sub
複製代碼

TOP

回復 8# lpk187




先謝了,只差一點點就完美了,因為現在A3是3,A4是4,但表格上應該是A2是1,A3是2,A4是3,再次拜托眾大神了。

TOP

回復 7# leehom


    整個走向錯誤了,不應該這樣去寫
一個問題是要考慮後來使用者該如何輸入,你第一個問題到後面這一個問題,恩考的方向完全不同了。
  1. Sub worksheet_change(ByVal Target As Range)
  2.      If Target.Address = "$B$2" Then
  3.      Application.EnableEvents = False
  4.      i = Application.InputBox("How many numbers you want to add?", "Prompt", , , , , , 1) - 1
  5.      For j = Target.Row + 1 To Target.Row + i
  6.          Cells(j, Target.Column) = Left(Cells(j - 1, Target.Column), 5) & Right(Cells(j - 1, Target.Column), 7) + 1
  7.          Cells(j, Target.Column - 1) = Cells(j, Target.Column - 1).Row
  8.      Next
  9.      Application.EnableEvents = True
  10.      End If
  11. End Sub
複製代碼

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題