Xem phiên bản đầy đủ: Đã giải quyết: Xóa từ đầu tiên trong chuỗi
markmrw
11-10-2009, 06:23 sáng
Hiya Ladies and Gents
Tôi cần tìm một cách để loại bỏ từ đầu tiên khỏi một chuỗi. Sử dụng VBA làm phạm vi không phải lúc nào cũng giống nhau. (vì vậy tôi không thể sử dụng công thức bảng tính)
using VBA as the range is not always the same. (so i can't use a worksheet formula)
Các chuỗi không phải lúc nào cũng có cùng chiều dài, tức là.
i.e.
Chiều dài WHP 111 Chiều cao Whp 222 Độ sâu WHP 333
Height WHP 222
Depth WHP 333
Từ đầu tiên có thể được cắt giảm, tôi không phải giữ từ đầu tiên để nó có thể bị xóa. Tôi đã thử sử dụng bên trái (nhưng tôi hơi dày) :)
i have tried using Left (But im a bit thick) :)
Mọi sự trợ giúp sẽ rất được trân trọng
Đánh dấu
mdmackillop
11-10-2009, 06:48 sáng
Sub delleft () dim l dài, d dài l = len (lựa chọn) d = orch (1, lựa chọn, "") ) Kết thúc phụ
Dim l as long, d as long
l = Len(Selection)
d = InStr(1, Selection, " ")
If Not d = 0 Then Selection.Offset(, 1) = Right(Selection, l - d)
End Sub
Bob Phillips
11-10-2009, 07:18 sáng
Hiya Ladies and Gents
Tôi cần tìm một cách để loại bỏ từ đầu tiên khỏi một chuỗi. Sử dụng VBA làm phạm vi không phải lúc nào cũng giống nhau. (vì vậy tôi không thể sử dụng công thức bảng tính)
using VBA as the range is not always the same. (so i can't use a worksheet formula)
Các chuỗi không phải lúc nào cũng có cùng chiều dài, tức là.
Chiều dài WHP 111 Chiều cao Whp 222 Độ sâu WHP 333
markmrw
Từ đầu tiên có thể được cắt giảm, tôi không phải giữ từ đầu tiên để nó có thể bị xóa. Tôi đã thử sử dụng bên trái (nhưng tôi hơi dày) :)
Mọi sự trợ giúp sẽ rất được trân trọng
Đánh dấu
what is As Long?
mdmackillop
11-10-2009, 06:48 sáng
Sub delleft () dim l dài, d dài l = len (lựa chọn) d = orch (1, lựa chọn, "") ) Kết thúc phụ
Bob Phillips
Using Data Types Efficiently
11-10-2009, 07:18 sáng
Có bạn có thể,
= Mid (a1, find ("", a1) +1,255)
11-10-2009, 07:35 sáng
You write data directly to random-access files.In addition to Variant, supported data types include Byte, Boolean, Integer, Long, Single, Double, Currency, Decimal, Date, Object, and String. Use the Dim statement to declare a variable of a specific type, for example:
markmrw
Hoàn hảo cảm ơn bạn MD
Như một vấn đề quan tâm là gì lâu như vậy?
11-10-2009, 08:04 AM
markmrw
Hoàn hảo cảm ơn bạn MD
Như một vấn đề quan tâm là gì lâu như vậy?
mdmackillop
11-10-2009, 06:48 sáng
Sub delleft () dim l dài, d dài l = len (lựa chọn) d = orch (1, lựa chọn, "") ) Kết thúc phụ
markmrw
Bob Phillips
11-10-2009, 07:18 sáng
Có bạn có thể,
Bob Phillips
11-10-2009, 07:18 sáng
Có bạn có thể,
diego80
= Mid (a1, find ("", a1) +1,255)
Sub delleft () dim l dài, d dài l = len (lựa chọn) d = orch (1, lựa chọn, "") ) Kết thúc phụ
Dim l as long, d as long
l = Len(Selection)
d = InStr(1, Selection, " ")
If Not d = 0 Then Selection.Offset(, 1) = Right(Selection, l - d)
End Sub
Bob Phillips
11-10-2009, 07:18 sáng
Có bạn có thể,
= Mid (a1, find ("", a1) +1,255)
11-10-2009, 07:35 sáng
Hoàn hảo cảm ơn bạn MD
could it be possible to request a custom edit so that the output is overwritten within the same cells? :)
Như một vấn đề quan tâm là gì lâu như vậy?
11-10-2009, 08:04 AM
mdmackillop
11-10-2009, 06:48 sáng
Sub delleft () dim l dài, d dài l = len (lựa chọn) d = orch (1, lựa chọn, "") ) Kết thúc phụ
Dim l As Long, d As Long
Dim Cel As Range
For Each Cel In Selection
l = Len(Cel)
d = InStr(1, Cel, " ")
'If Not d = 0 Then cel.Offset(, 1).Value = Right(cel, l - d)
'or
If Not d = 0 Then Cel.Value = Right(Cel, l - d)
Next Cel
End Sub
diego80
Bob Phillips
11-10-2009, 07:18 sáng
diego80
Có bạn có thể,
= Mid (a1, find ("", a1) +1,255)
11-10-2009, 07:35 sáng
Hoàn hảo cảm ơn bạn MD
Như một vấn đề quan tâm là gì lâu như vậy?
Có bao nhiêu dấu gạch ngang có thể xuất hiện?
Này dân gian! Tôi muốn xóa từ đầu tiên của chuỗi văn bản và xóa tất cả các văn bản phía sau dấu gạch ngang cuối cùng ... Tôi có hơn 2000 mục nhập dữ liệu và mỗi mục trong số chúng là khác nhau - nhưng trong mỗi hàng tôi muốn xóa từ đầu tiên và xóa tất cả các từ sau dấu gạch ngang cuối cùng. Đây là một ví dụ: Dữ liệu gốc: Gửi ABC Accrual - Asadakdslksaa Gửi DEF- THÁNG 10 Tôi muốn "làm sạch" dữ liệu sao cho nó hiển thị như: ABC Accural def- Tiết kiệm tháng 10 Q2 STA *Lưu ý rằng tôi vẫn muốn giữ dấu gạch ngang đầu tiên trên mục nhập dữ liệu thứ hai, tôi chỉ cần xóa mọi thứ sau dấu gạch ngang cuối cùng. Vài câu hỏi... 1) Từ đầu tiên luôn luôn "gửi"?always "Submit"? 2) Dấu gạch ngang cuối cùng luôn có một khoảng trống ở hai bên của nó?always have a space on either side of it? 3) Có bất kỳ dấu gạch ngang nào khác luôn không có không gian ở hai bên (như bạn hiển thị trong ví dụ của mình) không?always not have a space on either side (like you show in your example)? 4) Bạn đang tìm kiếm một công thức VBA, Excel hoặc thủ tục thủ công để thực hiện điều này?
Trên thực tế, chức năng này sẽ giúp bạn. Nó không phải của tôi (cảm ơn chip!), Nhưng nó hoạt động. Sử dụng nó để tìm kiếm ngược cho dấu gạch ngang ở phía bên phải của chuỗi của bạn. Sau đó, bạn có thể sử dụng = trái để tạo một chuỗi mới. Sau đó, một tìm kiếm bình thường cho một dấu gạch ngang trong chuỗi đó và tất cả các bạn đã được thiết lập. Xin lỗi vì đã rất ngắn gọn - tôi đã trở lại làm việc! Nhưng thử thách là tốt, phải không? Chức năng repninstr (byval thistring as string, byval thechar as string, _ byval startat as integer) như số nguyên Dim ndx như số nguyên mờ l như số nguyên l = len (TheChar) nếu startat len (thistring) sau đó thoát ra chức năng kết thúc nếu Cho ndx = startat đến 1 bước -1 nếu mid (thestring, ndx, l) = TheChar sau đó revinStr = ndx thoát chức năng kết thúc nếu NDX tiếp theo Hàm cuối Trong đó Thestring là chuỗi bạn muốn tìm kiếm, TheChar là ký tự hoặc chuỗi các ký tự bạn muốn tìm kiếm và Startat là vị trí ký tự trong việc bạn muốn bắt đầu tìm kiếm tại (hoặc
Submit ABC Accrual - Asadakdslksaa
Submit DEF- October Savings - Bsaasd
Submit Q2 STA - Dddsasda
DEF- October Savings
Q2 STA
ByVal StartAt As Integer) As Integer
Dim L As Integer
L = Len(TheChar)
If StartAt Len(TheString) Then
Exit Function
End If
If Mid(TheString, Ndx, L) = TheChar Then
RevInStr = Ndx
Exit Function
End If
Next Ndx
character or string of characters you want to search for, and StartAt is the
character position in TheString you want to start the search at (or Mô -đun
=SubString(A1)
and drag down as far as required
Đã chỉnh sửa lần cuối: ngày 4 tháng 6 năm 2013
- #6
Tôi không nghĩ rằng bạn cần tạo một chức năng tùy chỉnh trừ khi bạn đang chạy phiên bản Excel thực sự cũ ( Mã số: Function SubString(src As String)
src = Mid(src, InStr(src, " ") + 1)
SubString = Left(src, Len(src) - InStrRev("-", src))
End Function Hoặc thậm chí điều này ... Mã số: Function SpaceToDash(S As String) As String
SpaceToDash = Trim(Mid(Left(S, InStrRev(S, "-") - 1), InStr(S, " ") + 1))
End Function
A UDF alternative might be something like this:
- #7
Xin lỗi, tôi đã có một sai lầm trong tôi trước đó. Nó nên đọc một cái gì đó như: Mã số: Function SubString(src As String)
src = Mid(src, InStr(src, " ") + 1)
SubString = Left(src, InStrRev(src, "-") - 1)
End Function Nhưng dù sao, Rick Rothstein đã làm điều đó tốt hơn nhiều.
- #số 8
Vài câu hỏi... 1) Từ đầu tiên luôn luôn "gửi"?always "Submit"? 2) Dấu gạch ngang cuối cùng luôn có một khoảng trống ở hai bên của nó?always have a space on either side of it? 3) Có bất kỳ dấu gạch ngang nào khác luôn không có không gian ở hai bên (như bạn hiển thị trong ví dụ của mình) không?always not have a space on either side (like you show in your example)? 4) Bạn đang tìm kiếm một công thức VBA, Excel hoặc thủ tục thủ công để thực hiện điều này? 1) Có 2) Có, nó 3) Xin lỗi tôi đã phạm sai lầm ở đó- tất cả các dấu gạch ngang luôn có một khoảng trống ở hai bên. 4) Làm thế nào tôi nên làm điều đó thông qua VBA (tôi hoàn toàn mới với VBA)? Làm thế nào để tôi làm điều đó bằng tay? Cảm ơn sự giúp đỡ của bạn Eunice
2) Yes, it does
3) Sorry I've made a mistake there- ALL THE DASHES ALWAYS HAVE A SPACE ON EITHER SIDE.
4) How should I do it through VBA (I am completely new to VBA)? How do I do it manually?
- #9
Cảm ơn bạn đã giúp đỡ! Đó là một câu trả lời thực sự chi tiết - tôi mới đến VBA vì vậy cảm ơn vì đã làm việc cho tôi thông qua nó
- #10
Cảm ơn rất nhiều! Chúc may mắn với công việc của bạn - đó là một câu trả lời rất chi tiết! Xin chào, Tôi không nghĩ rằng bạn cần tạo một chức năng tùy chỉnh để tìm kiếm ngược (PROTREV làm điều đó) trừ khi bạn đang chạy phiên bản Excel thực sự cũ ( Các hướng dẫn nhanh để thiết lập và sử dụng chức năng do người dùng này xác định là:
A UDF alternative might be
something like this:
=SubString(A1)
and drag down as far as required