下午好,
我是 C# 的絕對初學者,所以請保持溫和。我在 C# 中創建了一個 windows 表單,但我需要轉換以下 VBA 代碼,以便我可以在我的表單中使用它。我從哪里開始的任何想法?我找不到 C# 的 Instr 等價物
Sub clipboard()
Dim clipboard As MSForms.DataObject
Dim strContents As String
Set clipboard = New MSForms.DataObject
clipboard.GetFromClipboard
strContents = clipboard.GetText
If InStr(1, strContents, "TFR") > 0 Then
ErrorType = "TFR"
var1 = WorksheetFunction.Find("ERROR", strContents)
var2 = WorksheetFunction.Find("TFR", strContents, var1)
var3 = WorksheetFunction.Find("'", strContents, var2)
var4 = WorksheetFunction.Find("'", strContents, var3 1)
ErrorIdent = Trim(Mid(strContents, var3 1, var4 - var3 - 1))
End If
Sheet1.Cells(2, 4) = ErrorType
Sheet1.Cells(2, 6) = ErrorIdent
End Sub
uj5u.com熱心網友回復:
對于InStr(1, strContents, "TFR") > 0,你可以做
strContents.IndexOf("TFR") >= 0 // this need to be done since VB strings start at 1
或者
Strings.InStr(strContents, "TFR", CompareMethod.Text) > 0
或者您可以僅使用string.Contains來獲取真/假值
strContents.Contains("TFR") // this is the best since you don't care where it the substring is located
uj5u.com熱心網友回復:
感謝您抽出寶貴時間回答我的問題。我已經使用下面的代碼為任何偶然發現此類作業的人解決了這個問題。
private void paste_error_Click(object sender, EventArgs e)
{
string aosinformation = Clipboard.GetText();
string errorType = "";
string errorIdent = "";
string laststring = "";
string firststring = "";
string notamerror = "";
if (aosinformation.IndexOf("notam") > 0)
{
errorType = "NOTAM";
int var1 = aosinformation.IndexOf("ERROR");
int var2 = aosinformation.IndexOf("notam", var1);
int var3 = aosinformation.IndexOf("'", var2);
int var4 = aosinformation.IndexOf("'", var3 1);
errorIdent = aosinformation.Substring(var3 1, var4 - var3 -
1).Trim(' ');
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/339743.html
